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
@@
@@
...