Ответы:
Добавьте флаг c (в командной строке vim):
:%s/old/new/gc
будет выдавать подсказку «да / нет» при каждом появлении слова «старый».
Встроенная справка Vim предлагает полезную информацию о параметрах, доступных после выбора замены с подтверждением. Использование:
:h :s
Затем перейдите к разделу подтверждения параметров. Снимок экрана ниже:
Например, чтобы заменить это и все остальные совпадения, используйте a
.
Марк Биек указал, используя:
%s/old/new/gc
для глобального поиска замените подтверждением для каждой замены. Но мне также нравится интерактивно проверять, что старый текст будет соответствовать правильно. Сначала я выполняю поиск с помощью регулярного выражения, а затем снова использую этот шаблон:
/old.pattern.to.match
%s//replacement/gc
s//
Будет использовать последний шаблон поиска.
Я думаю, что вы ищете c
, например s/abc/123/gc
, это заставит VIM подтвердить замены. Смотрите: помощь: заменить для получения дополнительной информации.
Я обычно использую команду find / substitute / next / repeat :-)
/old<CR>3snew<ESC>n.n.n.n.n.n.n.
Это find "old"
, substitute 3 characters for "new"
, find next
, repeat substitute
, и так далее.
Это боль для массовых замен, но она позволяет вам выборочно игнорировать некоторые случаи старых (просто нажав n
снова, чтобы найти следующий, вместо того, .
чтобы повторять замену).
<CR>
?
Если ваш заменяющий текст должен меняться для каждого совпадающего вхождения (т.е. не просто выбирая Да / Нет, чтобы применить единственную замену), вы можете использовать плагин Vim, который я сделал, называемый интерактивный-замена .
Neovim теперь имеет функцию предварительного просмотра замены:
Изображение взято с: https://medium.com/@eric.burel/stop-using-open-source-5cb19baca44d Документация по функции: https://neovim.io/doc/user/options.html# 'inccommand'
nvim
встроенная функция, приятно знать! Спасибо, что поделился!