В этой статье мы объясним одну из самых полезных функций - поиск и замену. Имея несколько настроек, вы можете искать все, что захотите, с молниеносной скоростью и с большей детализацией.
Метод №1: Найдите и замените по одному вхождению за раз (с помощью команды с косой чертой и точкой)
Самый простой способ найти и заменить слово в Vim - использовать команду косой черты и точки. Косая черта (/) может использоваться для поиска слова, а точка (.) Может использоваться для замены этого слова.
Выполните следующие простые шаги, чтобы найти и заменить любое слово в редакторе Vim:
- Откройте файл в Vim
- Нажмите клавишу косой черты (/) вместе с поисковым запросом, например / search_term, и нажмите Enter. Он выделит выбранное слово.
- Затем нажмите клавишу cgn чтобы заменить выделенное слово и ввести replace_term
- Вернитесь в нормальный режим. Затем нажмите n, чтобы перейти к следующему вхождению поискового запроса.
- Затем нажмите точку (.), Если вы хотите заменить следующее вхождение тем же replace_term, в противном случае снова нажмите клавишу n, чтобы перейти к следующему вхождению.
Это самый быстрый и лучший метод для базового поиска, который заменяет функции, поскольку требует всего нескольких нажатий клавиш и меньше прерывает вашу текущую работу. Однако поиск слова, которое встречается слишком много раз, станет повторяющейся и трудоемкой задачей.
В Vim есть еще один лучший способ избежать этой повторяющейся задачи - использовать заменяющую команду.
Метод № 2 Найдите и замените с помощью команды Substitute
Команду замены можно использовать для выполнения базового или расширенного поиска и замены функций одной командой. Синтаксис этой команды:
$: s/<искать термин> /<replace_term> /вариант
Обратите внимание, что вы должны ввести эту команду в обычном режиме.
Где
- S: означает замену
- search_term: слово, которое вы хотите найти и заменить
- replace_term: слово, которым вы хотите заменить его на
- Вариант: c (для подтверждения), g (заменить все вхождения в одну строку), i (для игнорирования регистра)
Искать и заменить
Чтобы выполнить основной поиск и замену с помощью команды замены, используйте следующий синтаксис:
:%s/<искать термин> /<replace_term> /граммЭта команда заменит все экземпляры search_term на replace_term.
Например, это наш образец текста:
Ubuntu - одна из наиболее часто используемых ОС Linux. Ubuntu включает тысячи полезных программ. С помощью командной строки Ubuntu вы можете выполнять практически любые задачи.
Чтобы заменить каждое вхождение Ubuntu на Debian в следующем тексте, будет использоваться следующая команда:
:%s/Ubuntu/Debian/граммИскать и заменять в одной строке
Чтобы найти и заменить вхождение слова только в одной строке, а не во всем файле, используйте следующий синтаксис:
: s/<искать термин> /replace_term/граммНапример, чтобы заменить вхождение Ubuntu на Debian в приведенном выше примере текста, можно использовать следующую команду без символа%:
: s/Ubuntu/Debian/граммПоиск и замена с подтверждением
Если вы хотите, чтобы вас попросили подтвердить перед заменой условия поиска, используйте c в конце команды поиска, как показано ниже:
: s/<искать термин> /<replace_term> /gcПриведенная выше команда будет запрашивать подтверждение перед каждой заменой (введите y для да и n для нет).
Поиск и замена без учета регистра
Когда вы выполняете поиск и замену в Vim, по умолчанию учитывается регистр. Вы можете выполнить поиск без учета регистра, добавив i в конце команды следующим образом:
: s/<искать термин> /<replace_term> /даватьНапример, для поиска термина Ubuntu независимо от его регистра (UBUNTU, Ubuntu, ubuntu, uBuntu) будет использоваться следующая команда:
: s/убунту/дебиан/даватьНайдите и замените все слово
По умолчанию замещающая команда ищет любое совпадение, частичное или полное. Чтобы соответствовать точному запросу search_term, а затем заменить его на replace_term, заключите search _term в.
Например, в некоторых документах вы хотите найти и заменить точное слово вы на меня. В этом случае будет использоваться следующая команда:
: s/<ты> /я/Он найдет слово «ты» и заменит его на меня. Однако он не заменит такие слова, как ваше.
Поиск и замена слов в определенных строках
Чтобы искать слово среди отдельных строк, а не только в одной строке или во всем файле, можно использовать следующий синтаксис:
:<start_line>,<окончание линии>s/<искать термин> /<replace_term> /граммНапример, чтобы найти и заменить вхождение Ubuntu на Debian из строк от 3 до 8 в каком-либо файле, команда будет выглядеть так:
:1, 10 с/убунту/дебиан/граммЧтобы найти и заменить вхождение слова из текущей строки на следующее количество строк x, будет использоваться следующий синтаксис:
: s/искать термин/replace_term/g xТочно так же для поиска и замены вхождения слова из текущей строки в последнюю строку: будет использоваться следующий синтаксис:
:.,$ s/искать термин/replace_term/граммЗАКЛЮЧЕНИЕ
В этой статье мы узнали о двух способах поиска и замены любого слова в редакторе Vim из командной строки. Первая команда, в которой использовались косая черта и точка, - это самый простой и легкий метод, но он оказывается повторяющимся, когда вы ищете и заменяете слово, которое встречается слишком много раз. Другая команда, которая является командой подстановки, когда-то может показаться сложной и сложной, но как только вы начнете практиковать ее, вы обнаружите, что она чрезвычайно полезна во многих сценариях.