Czy istnieje wyszukiwanie dla polecenia replace?

12

Naprawdę podoba mi się incsearchfunkcjonalność Vima . Czy istnieje sposób, aby to działało, lub coś podobnego, działając podczas wymiany?

Na przykład, jeśli w trybie normalnym piszę:

:%s/potato/

Czy mogę potatowyróżnić wszystkie litery w moim pliku, tak jak są podświetlone incsearchpodczas pisania?

/potato

?

To bardzo by mi pomogło, gdy używam wyrażeń regularnych. Bardzo bardzo miło byłoby, gdy piszę to:

:%s/potato/banana/

Zamieniłby potatos na bananas i podświetlił je - być może zamienniki powinny być w innym kolorze. Nie mógł jednak „zatwierdzić” zmiany, dopóki nie nacisnąłem Enter).

Obecnie używam neovim, na wypadek, gdyby to pomogło.

kikito
źródło
1
Czy masz na myśli incsearch? hlsearchpowinien działać ootb, jeśli piszę, :%s/potato/\0/aby zamienić na potatosiebie, wtedy wszystkie podświetlone dopasowania są podświetlone.
jjaderberg
Inded, miałem na myśli inksearch. Zastępuję w moim pytaniu, dzięki.
kikito
Prawdopodobnie nie jest to koszerne, ale :/pattern<CR>działa dobrze, a następnie dodaj% s i zamień ciąg. Thene ponownie to poprawia wyszukiwanie i używa CTR-R /, aby wkleić do części wyszukiwania:%s/
Steve
Dołączenie do @jjaderberg: :%s/potato/carrot/cpozwoli ci przeskoczyć („potwierdzić”) przez swoje zamiany (dodaj, gaby zastąpić wszystkie wystąpienia w tej samej linii), a hlsearchzobaczysz je wcześniej.
Rolf

Odpowiedzi:

9

Po krótkich poszukiwaniach znalazłem problem NeoVim , który z kolei został zamknięty przez ten PR , który doprowadził mnie do inccommandustawienia. Dodanie tego do mojego pliku konfiguracyjnego:

set inccommand=nosplit

sprawia, że ​​NeoVim zachowuje się prawie dokładnie tak, jak prosiłem w moim pytaniu. Nie znalazłem czegoś równoważnego dla zwykłego Vima, ale nie szukałem tego bardzo energicznie.

kikito
źródło
4
W swojej situtaion, na incsearchw subtitutions (istota leniwa Vimmer i wolno przyjąć neo rzeczy) to pewnie szukać ziemniaka ( /potato) korzystających zwykłej wyszukiwarki przyrostową highlighighting, a następnie zastąpić z pustym wyszukiwania: %s//banana. Ale nie wiem, jak to wygląda set inccommand=nosplitpod innymi względami.
jjaderberg
Dzięki! Nie znałem „pustej sztuczki wyszukiwania”. Spróbuję to zapamiętać, kiedy będę vim na moich serwerach
kikito
1
@jjaderberg, tak przy okazji, podobało mi się to inccommandustawienie, że zrobiłem asciinema, pokazując to w pracy, na wypadek, gdyby zmotywowało cię do wypróbowania neovim
kikito
2
@jjaderberg Myślę, że warto być odpowiedzią.
Bogaty
Niestety, link do asciinema jest już martwy.
sjy,