Введение
Vim или его предшественник Vi предустановлены в macOS и большинстве дистрибутивов Linux. Поиск текста — одна из самых распространенных задач при работе с файлами. Знание основ Vim может быть очень полезным, когда вы сталкиваетесь с ситуацией, когда ваш любимый редактор недоступен.
В этой статье описывается, как выполнять операции поиска в Vim/Vi.
Фундаментальные исследования
Для поиска в Vim вы должны находиться в обычном режиме. Когда вы запускаете редактор Vim, вы находитесь в этом режиме. Чтобы вернуться в обычный режим из любого другого режима, просто нажмите Esc
.
Vim позволяет быстро находить текст, используя символы /
(косая черта) и ?
(Вопросительный знак).
Для поиска вперед в файле нажмите /
и для поиска назад нажмите ?
, введите текст для поиска и нажмите Enter
, чтобы выполнить поиск.
Важно отметить, что команда поиска ищет шаблон (искомый текст) как строку, а не как целое слово. Например, если вы искали «gnu», поиск найдет совпадения, в которых «gnu» встроен в более крупные слова, такие как «cygnus» или «magnum».
Нажмите n
для поиска следующего вхождения или заглавную N
для поиска в обратном направлении.
Основные шаги для поиска в Vim следующие:
- Нажмите
/
. - Введите шаблон поиска.
- Нажмите
Enter
для поиска. - Нажмите
n
, чтобы найти следующее вхождение, илиN
, чтобы найти предыдущее вхождение.
Ищите целые слова
Чтобы найти слово целиком, начните поиск, нажав /
или ?
, введите \<
, чтобы отметить начало слова, введите шаблон поиска, введите \>
, чтобы отметить конец слова, и нажмите Enter
для поиска.
Например, для поиска «gnu» вы должны использовать /\<gnu\>
.
Поиск текущего слова
Вы также можете искать слово целиком, наведя курсор на слово и нажав *
(звездочка) для поиска вперед или #
(решётка) для поиска назад. Чтобы найти следующий результат, снова нажмите *
или #
.
История поиска
Vim отслеживает все операции поиска, выполненные в текущем сеансе. Чтобы просмотреть историю поиска, нажмите /
или ?
используйте клавиши со стрелками вверх/вниз, чтобы найти предыдущую операцию поиска. Для поиска просто нажмите Enter
. Вы также можете отредактировать шаблон поиска перед выполнением операции.
Деликатный случай
По умолчанию результат поиска чувствителен к регистру; поиск «GNU» не соответствовал «Gnu».
Чтобы игнорировать прописные или строчные буквы, а затем найти любое совпадение, введите :set ignorecase
или :set ic
в командной строке Vim. Вы также можете установить игнорирование в качестве параметра по умолчанию, добавив команду в файл ~/.vimrc
.
Чтобы вернуться в режим соответствия в верхнем регистре, введите :set noignorecase
или :set noic
.
Другой способ заставить игнорировать регистр — добавить \c
после шаблона поиска. Например, /Linux\c
будет игнорировать регистр при поиске. Используйте прописные буквы \C
после того, как шаблон инициирует поиск без учета регистра.
Вывод
В этом уроке мы увидели, как искать слово в файле с помощью Vim/Vi.
Для поиска в Vim /Vi введите /
или ?
, введите шаблон поиска и нажмите Enter
.