Vim - поиск и замена результатов

Через несколько месяцев я становлюсь все более и более комфортным с Vim. НО, есть только одна простая функция, я не могу получить никакого ответа из Интернета. Это "Поиск и замена результатов". Проблема в том, что я знаю:

:/ключевое слово для поиска и нажать "ключевое слово", будет выделено (конечно же, с помощью набора hlsearch) n или N для перемещения по

:% s/keyword/new_keyword/g, чтобы заменить все вхождения ключевого слова new_keyword.

НО, я бы подумал, что должен быть способ поиска и заменить сопоставленное ключевое слово (выделено) любым новым ключом без WITHOUT ":% s/keyword/new_keyword/g", который много набирает с учетом поиска и заменить такую ​​повседневную функцию.

Любые ответы/комментарии будут очень благодарны!

Ответы

Ответ 1

Если вы уже выполнили поиск, вы можете сделать замену для того же шаблона, просто оставив шаблон в команде substitute. например:

/keyword

поиск по ключевому слову, а затем:

:%s//new_keyword/g

заменит все вхождения "ключевого слова" на "new_keyword".

Ответ 2

Поиск и использование команды "точка" (вы не использовали команду "точка", поэтому я ее выделяю), чтобы повторить последнее действие ввода - это лучший выбор здесь.

Я использую s///g для поиска и замены.

Ответ 3

Хорошо, поскольку для большинства символов используется # ключевое слово # и # new_keyword #, и вам нужно каким-то образом различать их (т.е. символ в vim или вкладку между полями ввода в диалоговом окне в другом редакторе) вы останетесь с четырьмя или пятью нажатиями клавиш.

Поэтому я думаю, что вы, вероятно, переоцениваете количество нажатий клавиш и также забываете, что (1) это становится очень естественным, и (2) работая таким образом, вы также можете естественным образом изменить действие, выполняемое с помощью указания другого диапазона или флажка опций.

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

nmap s :%s/

Приведенная выше команда перенаправляет '(я не рекомендую переназначить этот ключ, но он дает идею) и настроил вас на то, чтобы вставить ключевое слово.

Кроме того, вы можете установить для параметра 'gdefault' значение по умолчанию для замены нескольких строк на строку. Это позволяет пропустить окончание "/g" в ваших нажатиях клавиш:

set gdefault

См. ': h gdefault' для раздела справки по этой опции.

В конце концов, я бы сказал, просто привык к способу работы по умолчанию, потому что, используя его таким образом, вы можете сохранить такую ​​же базовую операцию, когда хотите указать разные диапазоны или флаги параметров, а создание новой специальной карты - это просто еще одна вещь, которую нужно запомнить. gdefault может стоить установки, если вы считаете, что хотите сделать это в большинстве случаев, добавив флаг g в конце, когда gdefault установлен, влияет на поворот/g.,

Ответ 4

Переместитесь к первому выделенному слову, затем запишите макрос для замены слова и перехода к следующему, например:

gg
n
qq
caw new_word^[
n
q
@q
@@
@@
...