Как искать в Vim / Vi

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

Vim или его предшественник Vi предустановлен в macOS и большинстве дистрибутивов Linux. Поиск текста — одна из самых распространенных задач при работе с файлами. Знание основ Vim может быть очень полезным, когда вы сталкиваетесь с ситуацией, когда ваш любимый редактор недоступен.

Базовый поиск

Для поиска в Vim вы должны быть в обычном режиме. Когда вы запускаете редактор Vim, вы находитесь в этом режиме. Чтобы вернуться в нормальный режим из любого другого режима, просто нажмите клавишу Esc.

Vim позволяет быстро находить текст с помощью / (косая черта) и ? (знак вопроса) команды.

Для поиска вперед нажмите / а для поиска назад нажмите ? , введите шаблон поиска и нажмите Enter чтобы запустить поиск:

Важно отметить, что команда поиска ищет шаблон как строку, а не целое слово. Если, например, вы искали «gnu», поиск совпадет с тем, что «gnu» встроено в слова большего размера, такие как «cygnus» или «magnum».

Нажмите n для поиска следующего вхождения или N в верхнем регистре для поиска в обратном направлении.

Основные шаги для выполнения поиска в Vim следующие:

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

Искать слово целиком

Для поиска всего слова начните поиск, нажав / или ? , введите < чтобы отметить начало слова, введите шаблон поиска, введите > чтобы отметить конец слова, и нажмите Enter чтобы выполнить поиск.

Например, для поиска «gnu» вы должны использовать /<work> :

Искать в текущем слове

Вы также можете выполнить поиск целого слова, переместив курсор на слово и нажав * (звездочка) для поиска вперед или # (решетка) для поиска в обратном направлении. Чтобы найти следующее совпадение, снова нажмите * или # .

История поиска

Vim отслеживает все операции поиска, выполненные вами в текущем сеансе. Чтобы просмотреть историю поиска, нажмите / или ? и используйте клавиши со стрелками вверх / вниз, чтобы найти предыдущую операцию поиска. Чтобы запустить поиск, просто нажмите Enter . Вы также можете отредактировать шаблон поиска перед выполнением операции.

Чувствительность к регистру

По умолчанию в результатах поиска учитывается регистр; поиск «GNU» не будет соответствовать «Gnu».

Чтобы игнорировать регистр :set ignorecase или :set ic в командной строке Vim. Вы также можете установить регистр игнорирования как вариант по умолчанию, добавив команду в ваш файл ~/.vimrc .

Чтобы вернуться в режим совпадения регистра, введите :set noignorecase или :set noic .

Другой способ принудительно игнорировать регистр — добавить c после шаблона поиска. Например, /Linuxc выполняет поиск без учета регистра. Верхний регистр C после шаблона приводит к поиску совпадения по регистру.

Выводы

Для поиска в Vim / Vi введите / или ? , введите шаблон поиска и нажмите Enter .

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

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