В этой статье описывается, как выполнять поисковые операции в 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
.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
Исправьте «Искать в текущем слове» на «Искать текущее слово»