Відповіді:
Додайте прапор 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
вбудована функція, добре знати! Дякую, що поділились!