Znam regex dla globalnej zamiany,
%s/old/new/g
Jak zabierasz się za interaktywne wyszukiwanie w Vimie ?
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ą:
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:
s//
Użyje ostatniego wyszukiwania wzorca.źródło
Myślę, że szukasz
c
np.s/abc/123/gc
Spowoduje to, że VIM potwierdzi zamiany. Zobacz: pomoc: zastąp za więcej informacji.źródło
Zwykle używam polecenia find / substitute / next / repeat :-)
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ę).źródło
<CR>
?Jeśli chcesz policzyć liczbę wystąpień „abc”, możesz to zrobić
%s/abc//gn
. Nie zastępuje to niczego, a jedynie podaje liczbę wystąpień „abc”.źródło
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 .
źródło
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'
źródło
nvim
wbudowana funkcja, dobrze wiedzieć! Dzięki za udostępnienie!