Odpowiedzi:
Dodaj flagę c (w wierszu polecenia vim):
:%s/old/new/gc
wyświetli monit „tak / nie” przy każdym wystąpieniu „starego”.
Wbudowana pomoc Vima zawiera przydatne informacje o opcjach dostępnych po wybraniu zamiany z potwierdzeniem. Posługiwać się:
:h :s
Następnie przewiń do sekcji potwierdzającej opcje. Zrzut ekranu poniżej:
Na przykład, aby zastąpić to i wszystkie pozostałe dopasowania, użyj a
.
Mark Biek wskazał za pomocą:
%s/old/new/gc
dla wyszukiwania globalnego zamień z potwierdzeniem dla każdej zamiany. Ale lubię także interaktywnie sprawdzać, czy stary tekst jest poprawnie dopasowany. Najpierw przeprowadzam wyszukiwanie za pomocą wyrażenia regularnego, a następnie ponownie używam tego wzorca:
/old.pattern.to.match
%s//replacement/gc
s//
Użyje ostatniego wyszukiwania wzorca.
Myślę, że szukasz c
np. s/abc/123/gc
Spowoduje to, że VIM potwierdzi zamiany. Zobacz: pomoc: zastąp za więcej informacji.
Zwykle używam polecenia find / substitute / next / repeat :-)
/old<CR>3snew<ESC>n.n.n.n.n.n.n.
To find "old"
, substitute 3 characters for "new"
, find next
, repeat substitute
, i tak dalej.
Jest to uciążliwe dla masowych substytucji, ale pozwala selektywnie ignorować niektóre stare wystąpienia (wystarczy nacisnąć n
ponownie, aby znaleźć następne zamiast .
powtarzać substytucję).
<CR>
?
Jeśli twój tekst zastępujący musi się zmienić dla każdego dopasowanego wystąpienia (tj. Nie po prostu wybierając Tak / Nie, aby zastosować pojedynczą zamianę), możesz użyć wtyczki Vima, którą stworzyłem, o nazwie interaktywne zastępowanie .
Neovim ma teraz funkcję podglądu zamiany:
Zdjęcie pochodzi z: https://medium.com/@eric.burel/stop-using-open-source-5cb19baca44d Dokumentacja funkcji: https://neovim.io/doc/user/options.html# 'inccommand'
nvim
wbudowana funkcja, dobrze wiedzieć! Dzięki za udostępnienie!