Ответы:
Добавьте флаг c (в командной строке vim):
:%s/old/new/gc
будет выдавать подсказку «да / нет» при каждом появлении слова «старый».

Встроенная справка Vim предлагает полезную информацию о параметрах, доступных после выбора замены с подтверждением. Использование:
:h :s
Затем перейдите к разделу подтверждения параметров. Снимок экрана ниже:
![Текст с надписью «[C] Подтвердите каждую замену. [...] CTRL-Y, чтобы прокрутить экран вниз»](https://i.stack.imgur.com/hQBJ4.gif)
Например, чтобы заменить это и все остальные совпадения, используйте 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встроенная функция, приятно знать! Спасибо, что поделился!