Как удалить строки в Vim / Vi

Vim или его предшественник Vi предустановлен в большинстве дистрибутивов Linux и macOS. Если вы системный администратор или обычный пользователь Linux, важно знать основы Vim.

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

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

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

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

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

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

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

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

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

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

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

Синтаксис для удаления диапазона строк следующий:

:[start],[end]d

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

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

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

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

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

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

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

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

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

Удаление линий, содержащих узор

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

:g/<pattern>/d

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

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

:g!/<pattern>/d

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

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

Выводы

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

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

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

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