Меню Рубрики

Linux vim удалить строку

Как удалить строку в VIM на Linux

Как удалить строки из Vim? Как удалить диапазоны строк? Как удалить строки по заданному шаблону? Давайте рассмотрим в этой статье различные способы удаления строк в редакторе Vim.

  • Удалить одну строку
  • Удалить все строки
  • Удаление нескольких строк
  • Удаление диапазона строк
  • Удаление строк по заданному шаблону

Установите Vim на дистрибутивы Ubuntu / Debian

Установите Vim на дистрибутивы RHEL / CentOS

1) Удалите одну строку

Чтобы удалить одну строку в редакторе Vim, выполните следующие действия:

  • Поместите курсор в начало строки
  • Нажмите клавишу ESC.
  • Затем нажмите dd быстро нажмите букву ‘d’ дважды в быстрой последовательности.

В приведенном ниже примере нажатие dd в начале строки 6, как показано ниже, приведет к удалению всей строки.

2) Удалить все строки

Ниже приведены два способа удаления всех строк.

3) Удалить несколько строк

Чтобы удалить несколько строк

поместите курсор в начало строки.
Префикс команды dd с количеством строк, которые вы хотите удалить ниже.

Например, если вы хотите удалить 3 строки подряд ниже строки 3, нажмите

4) Удалите ряд строк

Если вы хотите удалить диапазон строк, например, от строки 3 до строки 5, синтаксис показан ниже

В этом случае нажмите ESC. Затем введите команду ниже и нажмите Enter.

Чтобы удалить последнюю строку

Чтобы удалить все строки до текущей строки

Чтобы удалить все строки после текущей строки

5) Удалить строки по заданному шаблону

Наконец, вы можете удалять строки по заданному шаблону.

Например, чтобы удалить строки, содержащие определенное слово, нажмите ESC и запустите

В нашем случае, чтобы удалить строки, содержащие слово «lazy»,

Чтобы удалить каждую строку, которая не содержит слова «lazy»,

Чтобы удалить строки, начинающиеся с определенной буквы, скажите ‘A’

Если вы хотите удалить строки, начинающиеся со специального символа, такого как знак $, префикс символа с обратной косой чертой, как показано

Чтобы избавиться от всех пустых строк

У вас есть какие-либо советы по удалению линий vim? Надеюсь, эта статья вам помогла и, пожалуйста, оставьте свои комментарии.

Добавить комментарий Отменить ответ

• Свежие записи

• Категории

• itsecforu.ru

• kemicoint.ru

• Страны посетителей

IT is good

Источник

Основные команды текстового редактора VI / VIM

Текстовый редактор vim, созданный на основе более старого vi. Один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, возможными благодаря расширениям и надстройкам. По умолчанию входит в состав любого дистрибутива Linux.

Открываем файл с помощью vi / vim:

Основные режимы работы.

«Обычный режим» — перемещение по файлу, стирание текста и другие редактирующие функции. Это – основной режим, только из него можно сразу перейти в другие режимы. Для возврата в основной режим из любого другого режима:

«Режим ввода» – ввод текста. Как только завершается ввод текста, принято сразу возвращаться в обычный режим. Заметьте, что стирание и ввод текста происходит в двух разных режимах. Переход в него из обычного режима:

«Командный режим» – Команды (операции с файлом, поиск и замена, настройка редактора…). Переход в него из обычного режима:

«Режим поиска» – ввод поискового запроса. Переход в него из обычного режима

«Визуальный режим» – режим выделения текста:

Перемещение по файлу

После загрузки Vim, на экране вы увидите часть загруженного вами текстового файла. Загрузившись, Vim находится в «командном режиме» – один из основных режимов. Это значит, что если вы нажмете клавишу (строчная L), вместо появления «l» на месте курсора вы увидите, что курсор сдвинулся на один символ вправо. В командном режиме знаки, набираемые на клавиатуре, используются как команды для Vim, а не как помещаемые в текст символы. Команды перемещения – один из наиболее важных типов команд. Вот некоторые из них:

Ввод текста

Следующие команды переводят редактор в режим ввода:

Удаление и вставка

Ниже перечислены основные комманды удаления и вставки текста:

Отмена изменений

Поиск

Выход

Есть еще пара команд, которые вам необходимо знать:

В этой статье описаны основные возможности, необходимые для работы. Практически во все дистрибутивы Linux входит учебник по работе с редактором, – просто введите в командной строке команду vimtutor.

Справка

Для вызова справки (помощи) о редакторе введите в терминале команду:

Источник

2 мин для чтения Как удалить строки в Vim/Vi

Главное меню » Linux » Как удалить строки в Vim/Vi

Довольно часто при работе с текстовыми файлами вам необходимо удалять одну или несколько строк.

В этой статье показано, как удалять строки в Vim/Vi.

Удаление строки

Команда для удаления строки в Vim есть dd.

Ниже приведены пошаговые инструкции по удалению строки:

  1. Нажмите клавишу Esc, чтобы перейти в обычный режим.
  2. Поместите курсор на строку, которую хотите удалить.
  3. Введите ddи нажмите Enter, чтобы удалить строку.

Нажатие dd несколько раз удалит несколько строк.

Удаление нескольких строк

Чтобы удалить несколько строк одновременно, добавьте в команду dd количество строк, которые нужно удалить. Например, чтобы удалить пять строк, вы должны сделать следующее:

  1. Нажмите клавишу Esc, чтобы перейти в обычный режим.
  2. Поместите курсор на первую строку, которую вы хотите удалить.
  3. Введите 5dd и нажмите Enter, чтобы удалить следующие пять строк.

Удалить диапазон строк

Синтаксис для удаления диапазона строк выглядит следующим образом:

Например, чтобы удалить строки от 3 до 5, вы должны сделать следующее:

  1. Нажмите клавишу Esc, чтобы перейти в обычный режим.
  2. Введите :3,5d и нажмите Enter, чтобы удалить строки.

Вы также можете использовать следующие символы для указания диапазона:

  • . (точка) – текущая строка.
  • $ – Последняя строка.
  • % – Все линии.

Вот несколько примеров:

  • . $d – От текущей строки до конца файла.
  • . 1d – от текущей строки до начала файла.
  • 10,$d – от 10-й строки до конца файла.

Удалить все строки

Чтобы удалить всю строку, вы можете использовать либо символ %, представляющий все строки, либо диапазон 1,$:

  1. Нажмите клавишу Esc, чтобы перейти в обычный режим.
  2. Введите %d и нажмите Enter, чтобы удалить все строки.

Удаление строк, содержащих шаблон

Синтаксис для удаления нескольких строк на основе определенного шаблона выглядит следующим образом:

Глобальная команда (g) указывает команде удаления (d) удалить все строки, содержащие

Чтобы сопоставить строки, не соответствующие шаблону, добавьте восклицательный знак (!) перед шаблоном:

Шаблон может быть буквальным соответствием или регулярным выражением . Ниже приведены некоторые примеры:

  • :g/foo/d – Удалить все строки, содержащие строку «foo». Также удаляется строка, в которой слово «foo» встроено в более крупные слова, например «футбол».
  • :g!/foo/d – Удалить все строки, не содержащие строку «foo».
  • :g/^#/d – Удалить все комментарии из скрипта Bash. Шаблон ^# означает, что каждая строка начинается с #.
  • :g/^$/d – Удалить все пустые строки. Шаблон ^$ соответствует всем пустым строкам.
  • :g/^\s*$/d – Удалить все пустые строки. В отличие от предыдущей команды, здесь также удаляются пустые строки, содержащие ноль или более пробельных символов ( \s*).

Вывод

Мы показали вам, как удалять строки в Vim.

Если вы новичок в Vim, посетите сайт Open Vim, где вы можете попрактиковаться в Vim с помощью интерактивного учебного пособия.

Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

100 команд vim, которые должен знать каждый

Поиск

/word Искать слово “word” сверху вниз
?word Искать слово “word” снизу вверх
/jo[ha]n> Искать “john” или “joan”
/\ Искать слова, заканчивающиеся на “the”
/\ Искать “the” (точное соответствие)
/\ Искать слова из четырех символов
/fred\|joe Искать “fred” или “joe”
/\ Искать 4 цифры подряд
/^\n\

Искать 3 пустые строки
:bufdo /searchstr/ Искать во всех открытых файлах

Удаление

d^ Удалить все символы от текущей позиции до начала строки
d$ Удалить все символы от текущей позиции до конца строки
d/word Удалить всё от текущей позиции до слова “word”
dfx Удалить всё от текущей позиции до символа “x”

Замена

:%s/old/new/g Заменить все вхождения “old” на “new”
:%s/old/new/gw Заменить все вхождения “old” на “new” с запросом подтверждения
:2,35s/old/new/g Заменить все вхождения “old” на “new” между 2 и 35 строками
:5,$s/old/new/g Заменить все вхождения “old” на “new” начиная с 5 строки и до конца файла
:%s/^/hello/g Добавить “hello” в начало каждой строки
:%s/$/Harry/g Добавить “Harry” в конец каждой строки
:%s/onward/forward/gi Заменить “onward” на “forward” с учетом регистра
:%s/ *$//g Убрать все пробелы
:g/string/d Удалить все строки, содержащие “string”
:v/string/d Удалить все строки, не содержащие “string”
:s/Bill/Steve/ Заменить первое вхождение “Bill” на “Steve” в текущей строке
:s/Bill/Steve/g Заменить все вхождения “Bill” на “Steve” в текущей строке
:%s/\r//g Убрать символ возврата каретки (Такие тексты обычно приходят от windows-пользователей)
:%s#>[^ ##g Очистить текст от HTML-тегов
:%s/^\(.*\)\n\1$/\1/ Удалить строки, повторяющиеся дважды
Ctrl+a Увеличить число под курсором на единицу
Ctrl+x Уменьшить число под курсором на единицу
ggVGg? Преобразовать текст в Rot13

Комментарий к замене: . мне нужно во всем файле совершить замену

Abs[ ‘выражение’ ] -> | ‘выражение’ |

Если при описании разыскиваемой последовательности заключить какое-нибудь выражение в скобки \( \), то Vim поместит его в память под соответствующим номером (первое выражение под номером один, второе — два) и позволит в дальнейшем вызывать командой \x, где x — номер, под которым выражение было помещено в память.

Таким образом, нужная команда будет выглядеть примерно так:

Здесь стоит отметить, что для буквального совпадения квадратные скобки предваряются слешами, поскольку являются спецсимволами. Вообще любой спецсимвол, если должен участвовать в поиске, обозначая свое непосредственное значение, предваряется слешем: \^; \* и т.д. Сам слеш предваряется также слешем. Выглядит это так: для поиска последовательности ‘\cos’ надо ввести ‘\\cos’.

. совершить замену вида

‘Заглавная латинская буква”цифра’ -> ‘Заглавная латинская буква’_’цифра’

Самое тривиальное решение, которое напрашивается — перебрать все комбинации, если их немного. То есть, запустить замену сначала ‘U1’ -> ‘U_1’, потом ‘U2’ -> ‘U_2’ и т.п. Понятно, что это не наш метод. Мы вспомним, что есть квадратные скобки. И для того, чтобы найти одну заглавную латинскую букву, достаточно ввести шаблон ‘[A-Z]’. Но и это не предел. Для такого шаблона у Vim есть специальная аббревиатура: ‘\u’ (от ‘uppercase’). Для цифр же есть ‘\d’ (от ‘digit’). Подробнее о таких конструкциях можно почитать по адресу :help pattern.txt. С использованием этих аббревиатур команда для поиска примет вид

Тут опять встречается группировка круглыми скобками: она позволяет при поиске поместить найденную букву и цифру в память под соотвествующими номерами, и впоследствии их оттуда извлечь, вызывая командами с теми же номерами: ‘\1’ вызовет букву, а ‘\2’ — цифру.

Регистр

Vu Перевести строку в нижний регистр
VU Перевести строку в верхний регистр
g

Инвертировать регистр vEU Перевести слово под курсором в верхний регистр vE

Инвертировать регистр слова ggguG Перевести весь текст в нижний регистр :set ignorecase Регистронезависимый поиск :set smartcase Игнорировать регистр при поиске, если в искомом выражении нет символов верхнего регистра :%s/\ > outfile Добавить в outfile с первой по десятую строки :r infile Вставить содержимое файла infile :23r infile Вставить содержимое файла infile после 23 строки

Навигация по ФС

:e . Открыть встроенный файл-менеджер
:Sex Разбить окно и открыть встроенный файл менеджер
:browse e Графический файл-менеджер
:ls Список буферов
:cd .. Перейти в родительскую директорию
:args Список открытых файлов
:args *.php Открыть все файлы с расширением *.php
:grep expression *.php Показать список файлов с расширением php, содержащих в имени expression
gf Открыть файл с именем, равным слову, находящемуся под курсором

Взаимодействие с ОС

:!pwd Выполнить команду pwd и вернуться
!!pwd Выполнить команду pwd и вставить результат в редактор
:sh Открыть шелл
$exit Вернуться в редактор из шелла

Выравнивание

:%!fmt Выровнять все строки
!>fmt Выровнять все строки в текущей позиции
5!!fmt Выровнять следующие 5 строк

Вкладки

:tabnew Создать новую вкладку
gt Перейти на следующую вкладку
:tabfirst Перейти на первую вкладку
:tablast Перейти на последнюю вкладку
:tabm n(position) Изменить порядок вкладок
:tabdo %s/foo/bar/g Выполнить команду во всех вкладках
:tab ball Поместить все открытые файлы во вкладки

Разделение окна

:e filename Редактировать filename в текущем окне
:split filename Разделить окно и открыть filename
ctrl-w + стрелка ВВЕРХ Переместить курсор в верхнее окно
ctrl-w ctrl-w Переместить курсор в следующее окно
ctrl-w ctrl-p Переместить курсор в предыдущее окно(вернуться назад)
ctrl-w ctrl-x Поменять окна местами
ctrl-w_ Максимизировать текущее окно
ctrl-w= Подогнать окна по размеру
10 ctrl-w+ Увеличить текущее окно на 10 строк
:vsplit file Вертикально разделить окно
:sview file Разделить окно и открыть file только для чтения
:hide Закрыть текущее окно
:only Закрыть все окна, кроме текущего
:b 2 Открыть #2 в текущем окне

Автодополнение

Ctrl+n Ctrl+p (в режиме вставки) Дополнить слово
Ctrl+x Ctrl+l Дополнить строку
:set dictionary=dict Установить словарь
Ctrl+x Ctrl+k Дополнение из словаря

Метки

mk Пометить текущую позиция как k
‘k Перейти к метке k
d’k Удалить все до метки k
d’a,’k Удалить все от метки a до метки k

Сокращения

:ab mail mail@provider.org Определить mail как сокращение от mail@provider.org

Отступы

:set autoindent Включить автоматическую расстановку отступов
:set smartindent Включить “умную” расстановку отступов
:set shiftwidth=4 Установить отступ равный 4 пробелам
ctrl-t, ctrl-d Убрать/добавить отступ в режиме вставки
> Убрать отступ

Подсветка синтаксиса

:syntax on Включить подсветку
:syntax off Выключить подсветку
:set syntax=perl Установить режим подсветки

Вставить символ в начало большого количества подряд идущих строк:

  • Use Ctrl+v to select the first column of text in the lines you want to comment.
  • Then hit ‘I’ and type the text you want to insert.
  • Then hit ‘Esc’, wait 1 second and the inserted text will appear on every line.

This replaces the beginning of each line with “//”:

This replaces the beginning of each selected line (use visual mode to select) with “//”:


What if you’ve forgot to give sudo when you’ve opened the /etc/group file as shown below? In this case, instead of coming out of the file (and loosing all your changes) and executing the vim command with sudo, you can do the following.

Note: “:w !sudo tee %” will save the file as root privilege, even if you didn’t use sudo command to open it.

Использование стиля “подсветил — посмотрел — выполнил” совместно с визуальным режимом оказалось очень удобной практикой. Такое комбинирование стилей выделения используется при решении задач типа “в данной функции переименовать переменную foo в bar” и подобных. Такая (и подобные) задачи решаются последовательностью действий:

  • Подсвечиваем foo командой *
  • Переходим в режим визуального выделения и выделяем текущую функцию
  • Отдаем команду замены :’ s//bar/g

Символы ’ , означающие начало и конец текущего выделенного блока, и определяющие диапазон применения команды :s, Vim подставляет автоматически при отдаче любой команды из режима визуального выделения. Также опущен первый аргумент команды :s, т. к. набирать его нет необходимости — когда он опущен, Vim использует в качестве этого аргумента содержимое регистра текущего поиска. То есть именно то, что подсвечено желтым.

:g//t$ — скопировать строки, содержащие подсвеченное значение, в конец файла. Если, например, надо быстро понять, как глобальная переменная (sic! — а что делать, в legacy-коде они встречаются) используется в модуле.

:g//d — удалить строки, содержащие подсвеченное значение
:g!//d — удалить стрки, НЕ содержащие подсвеченного значения

Заменить каждое вхождение нескольких пустых строк на одну пустую строку (чтобы между параграфами стал одинаковый промежуток в одну линию):
:v/./,/./-j

Убрать пустые строки (в визуальном режиме)
:’ g/^$/d

Раздвинуть подряд идущие строки (обратное предыдущему действие, каждая строка станет параграфом)
Нужно при форматировании текста под 76 символов, из формата, как его сохраняет Word, когда каждый абзац становится строкой в текстовом файле.
:’ s/$/\r/g

быстро вставить текст при включенном autoindent (set ai) – борьба с “лесенкой”

Источник


Adblock
detector