В этой статье описывается, как выполнять поисковые операции в Vim / Vi.
Vim или его предшественник Vi предустановлен в macOS и большинстве дистрибутивов Linux. Поиск текста — одна из самых распространенных задач при работе с файлами. Знание основ Vim может быть очень полезным, когда вы сталкиваетесь с ситуацией, когда ваш любимый редактор недоступен.
Содержание
Базовый поиск
Для поиска в Vim вы должны быть в обычном режиме. Когда вы запускаете редактор Vim, вы находитесь в этом режиме. Чтобы вернуться в нормальный режим из любого другого режима, просто нажмите клавишу Esc.
Vim позволяет быстро находить текст с помощью / (косая черта) и ? (знак вопроса) команды.
Для поиска вперед нажмите / а для поиска назад нажмите ? , введите шаблон поиска и нажмите Enter чтобы запустить поиск:

Важно отметить, что команда поиска ищет шаблон как строку, а не целое слово. Если, например, вы искали «gnu», поиск совпадет с тем, что «gnu» встроено в слова большего размера, такие как «cygnus» или «magnum».
Нажмите n для поиска следующего вхождения или N в верхнем регистре для поиска в обратном направлении.
Основные шаги для выполнения поиска в Vim следующие:
- Нажмите
/. - Введите шаблон поиска.
- Нажмите
Enterчтобы выполнить поиск. - Нажмите
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 .
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Исправьте «Искать в текущем слове» на «Искать текущее слово»