Vim находит и заменяет набор команд, функция полна IDE!

Linux

Vi/Vim, возможно, является поколением легенд текстового редактирования, и по сей день он занимает место в арсенале продвинутых программистов. Каждый дистрибутив Linux включает Vim по умолчанию, и вы можете установить Vim, даже если вы не являетесь пользователем системы Linux.

Почему мы все еще говорим об этом древнем программном обеспечении? Потому что это круто! Он включает в себя легкие сочетания клавиш для почти каждой функции, встроенного поиска выражений и надежной и устойчивой экосистемы плагинов. Он имеет еще другие современные текстовые редактор, такие как Nifty Syntax. Вы влюбитесь в этот текстовый редактирующий артефакт, прежде чем узнать его.

Возвращаясь к теме, сегодня мы изучим функцию текстового поиска и замены в Vim, чтобы помочь вам лучше использовать Vim. Если вы хотите узнать больше об операциях Vim, вы можете ответить на «Информация» в фоновом режиме общедоступной учетной записи «Liangxu Linux», и есть электронные книги и видео, организованные мной.

создание демонстрационного файла

Чтобы лучше объяснить последующий контент, нам сначала нужно подготовить демонстрационный файл. Здесь я создаю текстовый файл, содержащий все установленные пакеты в системе.PackageList.txtкак демонстрационный файл.

cat PackageList.txt

Теперь давайте откроем этот текстовый файл в Vim. После этого мы выполним демонстрацию последующей операции в этом файле.

vim PackageList.txt

Функция поиска Vim

В Windows функция поиска многих программ может использовать комбинацию клавиш Ctrl+F для вызова окна поиска, а затем завершить последующий поиск. Но в Vim нам нужно реализовать функцию поиска, используя следующую структуру команд:

?<search_string>

Например, мы хотим искать в файле PackageList.txtpythonЭто ключевое слово можно сделать так:

?python

По умолчанию при поиске будет найдено совпадение, ближайшее к текущему курсору. Если мы хотим перейти к следующему/предыдущему результату поиска, используем следующие клавиши:

  • n - найти следующее совпадение
  • N - найти предыдущее совпадение

Примечание. Перед использованием вышеуказанных клавиш не забудьте нажатьEnterключ. В противном случае поисковый запрос будет изменен!

Выше приведены только основные функции поиска в Vim.Если вы думаете, что это все его поисковые функции, то это действительно шаблон. Далее давайте попробуем более мощную функцию поиска.

Сначала укажите формат поиска:

/\<search_string>/>

здесь,\<Указывает на начало строки,/>Указывает конец строки, а середина — это строковое выражение, которое необходимо найти.

Как и в предыдущем примере, используйтеnилиNдля навигации по результатам поиска.

Строковое выражение в середине поддерживает не только прямой ввод ключевых слов, но и использование подстановочных знаков. Например, мы хотим найтиpython-начиная со строки, вы можете использоватьpython*. здесь*означает соответствие любому символу.

/\<python*/>

После поиска Vim по умолчанию поместит курсор в начало соответствующего ключевого слова.

Не нравится позиционирование курсора по умолчанию? Неважно, Vim позволяет нам изменить положение символа по умолчанию, в котором находится курсор.

/python/e

здесь,eиспользуется для размещения курсора в конце соответствующего ключевого слова.

Кроме того, используя следующие режимы команд, вы также можете расположить курсор ниже или выше результатов поиска.

/<search_string>/+2

or

/<search_string>/-3

Вы также можете сместить курсор от начала/конца поисковых совпадений. Например, следующая команда помещает курсор на 3 символа ближе к началу.

/<search_string>/s+3
/<search_string>/b+3

здесь,sозначает начало,+3Представляет 3-й символ с начала.bТакже означает начало, которое работает какs. На скриншоте также видно, что Vim автоматическиbперевести наs.

Если вас интересует смещение от конца результатов поиска, используйтеe(конец).

/<search_string/e-2

Вот еще один отличный способ поиска в текстовых файлах.

:%s/<search_pattern>//gn

Какова конкретная функция этой команды? Давайте сначала немного продадим здесь, пожалуйста, читайте дальше. Если вы хотите узнать больше об операциях Vim, вы можете ответить на «Информация» в фоновом режиме общедоступной учетной записи «Liangxu Linux», и есть электронные книги и видео, организованные мной.

Замена строки Vim

Поиск и замена — это набор общих и обязательных функций в любом текстовом редакторе. Ниже приведено введение в функцию замены строки в Vim.

Vim реализует подстановку, используя следующую структуру команд.

:<range> s/<search_string>/<replace_string>/<modifier>
  • диапазон — определяет диапазон, в котором выполняется функция «найти и заменить», с двумя различными значениями.
    • % - выполнить для всего файла
    • — выполнить операцию над определенным набором строк
  • search_string - строка для замены
  • replace_string — новая строка, которая заменяет старую строку
  • модификатор - определяет поведение замены, имеет несколько разных значений
    • г - глобальная замена
    • gc — запрашивать подтверждение перед каждой заменой
    • gn — игнорировать функцию замены и выделять находку.

Например, в файле PackageList.txt используйтеPython3строка заменить всеpythonнить.

:%s/python/Python3/g

Простой не так ли? Давайте еще раз посмотрим на следующую команду.

:%s/python/Python3/gc

Как видите, внизу вас спросят, хотите ли вы сделать замену. На этом этапе вы можете выбрать некоторые действия. Что означают эти немногие? Давайте посмотрим на них один за другим.

  • y - Позволяет выполнять изменения.
  • n - Изменения не допускаются.
  • а - заменить все.
  • Q - бросить задачу.
  • l - просто замените этот случай. Затем выйдите.
  • ^E (Ctrl + E) - прокрутить экран вверх
  • ^Y (Ctrl + Y) - прокрутить экран вниз

Далее, давайте попробуем поле области видимости. На самом деле, в предыдущем примере мы использовали%Область действия (для всей области действия файла).

Что, если мы не хотим выполнять поиск и замену во всем файле, если мы хотим сделать это только в нескольких определенных строках? Мы можем взять формат команды, подобный следующему:

:200,250 s/python/Python3/g

После выполнения вышеуказанного Vim напишет все строки, начиная с строки 200 и заканчивая строкой 250.pythonзаменитьPython3.

Эта функция не ограничивается одним словом, но также может выполнять замену нескольких ключевых слов. Его формат команды следующий:

:%s/<search_term_1>\|<search_term_2>\|<search_term_3>/<replace_string>/g

Например, пусть мы хотим преобразовать весь текст вpythonа такжеpyизменить наPython3.

:%s/python\|py/Python3/g

деликатный случай

Все операции замены, упомянутые ранее в этой статье, чувствительны к регистру. Например,Python,python,PYTHONи т.д. разные.

Если вы хотите игнорировать регистр, вы можете добавить\c,следующим образом:

/<search_term>\c
:%s/<search_term>\c/<replace_term>/g

Но эта настройка временная, она станет недействительной после закрытия Vim. Если вы хотите сделать это раз и навсегда, вы также можете начатьvimrc文件Прямая установка нечувствительна к регистру.

set ignorecase

Также есть интересный подход: умный режим капитализации.

set smartcase

ignorecaseЗаставит Vim игнорировать регистр. Однако, если ключевое слово для поиска состоит только из заглавных букв,smartcaseсделает Vim снова чувствительным к регистру.

Примечание: если вы хотите включитьsmartcase, сначала нужно установитьignorecase.

В заключение

Vim может помочь вам сделать многое, тренироваться более терпеливо, и я верю, что вы будете любить этот древний артефакт все больше и больше.

Это все настоящая любовь после прочтения. Поставить большой палец вверх и уйти? Ваши «Три звена» — самая большая мотивация для Лян Сюй продолжать творить!

  1. Сфокусируйся наоригинальныйНет публики"Хороший линукс», получите последнюю галантерею Linux в первый раз!
  2. Ответьте на фон официальной учетной записи [информация] [интервью] [резюме], чтобы получить интервью, самосовершенствование, резюме и другую информацию о выбранных производителях первого уровня.
  3. Следите за моим блогом:lxlinux.net