В редакторе Vim есть мощный инструмент для поиска и замены текста, который часто используется при работе с большими файлами или проектами. Чтобы приступить к поиску и замене, используйте команду :s или :substitute .
Полностью команда выглядит так:
:[range]s[ubstitute]/{pattern}/{string}/[flags] [count]
Область использования или диапазон [range], это область в которой будет происходить поиск и замена текста:
- % - применение ко всему документу.
- $ - применение к концу файла.
- 15,32 - применение к диапазону строк с 15-ой по 32-ю.
- . (точка) - применение к текущей строке (можно не использовать).
Использование флагов [flags] :
- g - этот флаг означает, что операция должна быть применена ко всем найденным вхождениям. Заменит все вхождения в строке. Без этого аргумента замена выполняется только для первого вхождения в каждой строке. Если включена опция "совместимый", Vim запоминает этот флаг и переключает его каждый раз, когда вы его используете, но сбрасывает, когда вы задаете новый шаблон поиска. Если включена опция "по умолчанию", то этот флаг включен по умолчанию, а аргумент [g] отключает его.
- c - этот флаг требуют подтверждения перед заменой.
- i - этот флаг игнорирует регистр для шаблона. Опции 'ignorecase' и 'smartcase' не используются.
Эти флаги могут быть полезны при выполнении сложных задач с поиском и заменой текста в Vim.
Например, если вы хотите заменить все слова «Hello» это {pattern} на «Hi» это {string}, a g это [flags], то команда будет такой:
:%s/Hello/Hi/g
Это заменит все вхождения «Hello» на «Hi» во всех строках файла.
Если вы хотите начать поиск и замену в определенном участке текста, а не во всем файле, можно использовать команду :10,20s/Hello/Hi/g, где 10 — это номер первой строки, c которой мы хотим начать замену,
а 20 — это номер последней строки.
Чтобы заменить только первую встреченную строку, используйте команду:
:s/Hello/Hi
Чтобы заменить все вхождения «Hello» на «Hi», но с подтверждением перед каждой замены, можно использовать команду:
:%s/Hello/Hi/gc
Для поиска без замены используется команда /pattern, где "pattern" — это текст, который мы хотим найти.
Поиск и замена текста — это простая и мощная функция в Vim. Используя различные флаги и параметры, вы можете выполнять сложные манипуляции с текстом прямо в редакторе. Следование этому руководству поможет вам эффективно использовать эту функцию для повышения производительности при работе с текстами.
Так же в области {pattern} можно использовать регулярные выражения.
Надеюсь этот гайд будет вам полезен.