Как искать текст в Vim (3 метода)
Известно, что редактор Vim повышает производительность своих пользователей с помощью различных сочетаний клавиш и команд. Но эти сочетания клавиш требуют некоторого обучения. Одной из наиболее распространенных проблем для новичков является использование Vim для поиска текста, поскольку обычный метод CTRL + F не работает в Linux. Не бойся, друг, так как в этой статье мы рассмотрим различные методы поиска текста в Vim.
Прямой или обратный текстовый поиск в Vim
Это самый распространенный и фундаментальный способ поиска текста в Vim, и каждый пользователь должен знать, как он работает. При этом вы можете быстро искать слова, фразы или даже шаблоны в данном файле. Выполните следующие действия для поиска текста в Vim:
1. Поместите курсор
Переместите курсор с помощью клавиш h, j, k и l, если вы находитесь в обычном режиме, или с помощью клавиш со стрелками на клавиатуре, чтобы поместить курсор с того места, где вы хотите начать поиск в тексте.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
2. Используйте команду поиска
В Vim вы можете искать текст либо в прямом направлении с помощью символа «/», либо в обратном направлении с помощью «?» символ. Используйте соответствующий символ для ваших нужд поиска.
3. Введите слово для поиска
Затем введите искомое слово или фразу, которую вы хотите найти, и нажмите Enter. Например, чтобы искать слово «Linux» в прямом направлении, используйте эту команду:
/Линукс
Курсор переместится в начало искомого текста. Этот метод ищет текст с учетом регистра. Чтобы игнорировать поиск с учетом регистра и поиск без учета регистра, используйте \c с командой. Просто добавьте ‘\c’ перед текстом для поиска. Например:
/\клинукс
4. Навигация по результатам поиска
Теперь нажмите «n», чтобы перейти к следующему результату поиска в прямом направлении, или нажмите «N», чтобы перейти в обратном направлении. Закончив поиск текста, выйдите из редактора Vim и перейдите к следующему документу.
Поиск текста с использованием регулярных выражений в Vim
Предыдущий метод безупречно работает для простых слов или фраз. Но что, если вам нужно найти общий шаблон, например, вы хотите отфильтровать все электронные письма по всему тексту? Не беспокойтесь, вы можете использовать регулярные выражения для поиска определенных шаблонов в Vim.
Регулярные выражения представляют собой набор символов, состоящий как из специальных символов, так и из буквенно-цифровых символов, представляющих определенный шаблон строки. Например, вы можете использовать следующие символы регулярного выражения: Regular Expression SymbolAction’.’для соответствия любому одиночному символу’*’для соответствия любому количеству вхождений предшествующего символа’+’для соответствия одному или нескольким вхождениям предшествующего символа'[]’для соответствия определенному набору символов’\w’соответствует любому слову с соответствующими предыдущими символами
Вот как вы можете искать текст в редакторе Vim в Linux, используя регулярные выражения.
1. Поместите курсор
Используйте клавиши со стрелками для перемещения курсора, чтобы обозначить начальную точку поиска.
2. Используйте команду поиска
Нажмите символ ‘/’ для поиска в прямом направлении или используйте ‘?’ для поиска в обратном направлении.
3. Введите шаблон поиска
Введите шаблон поиска регулярного выражения, который вам нужно найти. Например, чтобы найти все идентификаторы электронной почты в заданном тексте, используйте это:
\<[A-Za-z0-9._%+-]\+@[A-Za-z0-9.-]\+\.[A-Za-z]\{2,\}\>
Кажется сложным? Давайте разберемся —
- \< and \> отмечает начало и конец идентификатора электронной почты и гарантирует, что он соответствует целому слову.
- [A-Za-z0-9._-]\+ используется для соответствия каждому вхождению буквенно-цифровых символов, плюс, точек, подчеркиваний и дефисов
- @ точно соответствует символу ‘@’
- [A-Za-z0-9.-]\+ соответствует каждому вхождению буквенно-цифровых символов, точек и дефисов
- \. соответствует точке в идентификаторе электронной почты
- [A-Za-z]\{2,\} соответствует последней части доменного имени, например .com, .in и т. д.
4. Навигация по результатам поиска
Чтобы перейти к следующему результату поиска в прямом направлении, нажмите «n» или нажмите «N», чтобы перейти в обратном направлении.
Поиск и замена текста в редакторе Vim
Представьте, что вам нужно заменить сотни вхождений определенного слова. Для такой ситуации в Vim есть встроенная функция поиска и замены, где вы можете использовать как простой текст, так и регулярные выражения в соответствии с вашими потребностями для массовых изменений и эффективного управления текстом.
Вот как вы можете искать и заменять текст в Vim:
1. Войдите в командный режим
Нажмите кнопку «:» на клавиатуре, чтобы войти в командный режим, в котором вы можете выполнять встроенные команды Vim.
2. Введите шаблон поиска и замены
Теперь введите шаблон поиска и шаблон замены в соответствии с этим синтаксисом, чтобы начать операцию:
%s/search_pattern/replacement_text/
В приведенном выше синтаксисе символ «%» указывает, что Vim должен применить операцию ко всему файлу, а «s» указывает на использование команды замены.
Вот некоторые флаги, которые вы можете использовать с этой командой:
- g — обозначает «глобальный» флаг и используется для замены всех вхождений шаблона поиска заменой по всему тексту.
- c — означает флаг «подтвердить» и используется для запроса перед каждой заменой.
- i — означает флаг «игнорировать регистр» и используется для нечувствительного поиска регистров в данном файле.
Например, если вы хотите заменить слово «Linux» на «Unix» во всем тексте с запросом перед каждой заменой, используйте эту команду:
%s/линукс/юникс/гс
Внизу вы увидите следующую подсказку:
заменить на Unix (y/n/a/q/l/^E/^Y)?
Нажмите «y», чтобы заменить только первое вхождение, «n», чтобы пропустить текущую замену, «a», чтобы заменить все вхождения, «q», чтобы выйти из этой операции, «l», чтобы заменить и выйти. Вы даже можете нажать CTRL + E для прокрутки вверх или использовать CTRL + Y для прокрутки вниз.
После этого вы получите подтверждающее сообщение с количеством произведенных замен.
Часто задаваемые вопросы
Как искать несколько слов в Vim?
Чтобы найти несколько слов в Vim, сначала используйте команду поиска ‘/’, затем добавьте флаг ‘\v’, а затем напишите несколько слов, разделенных вертикальной чертой ‘|’ символ, подобный этому синтаксису: \v