В Vim замените все вхождения текущего термина под курсором - PullRequest
63 голосов
/ 04 апреля 2011

Если вы нажмете * в Vim, редактор будет искать следующее вхождение термина в том же файле.Это избавляет вас от необходимости вводить термин.

Есть ли быстрый способ заменить термин, находящийся в данный момент под курсором, новым?Один символ для ввода команды, набрав новый термин, затем Введите .

Ответы [ 4 ]

99 голосов
/ 04 апреля 2011

Просто используйте * и затем:

:%s//new value/

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

66 голосов
/ 04 апреля 2011

Вы можете использовать:

:%s/<c-r><c-w>/new value/g

где <c-r><c-w> означает буквально набрать CTRL - r CTRL - w , чтобы вставить слово под курсором.

12 голосов
/ 05 апреля 2011

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

" Search and replace word under cursor using F4
nnoremap <F4> :%s/<c-r><c-w>/<c-r><c-w>/gc<c-f>$F/i
5 голосов
/ 06 мая 2015

Я выбрал плагин, который позволяет вам просто ввести следующее:

:Dr REPLACEVALUE

https://github.com/chiedojohn/vim-dr-replace

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...