В этой статье описывается, как выполнять поисковые операции в 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 после шаблона поиска. Например, /Linux\c будет выполнять поиск без учета регистра. Прописная буква \C после шаблона вынуждают искать совпадения с регистром.
Вывод
Для поиска в Vim / Vi введите / или ?, введите шаблон поиска и нажмите Enter.
Не стесняйтесь оставлять комментарии, если у вас есть какие-либо вопросы.