Esiste una ricerca per il comando di sostituzione?


12

Mi piace molto la incsearchfunzionalità di Vim . C'è un modo per farlo funzionare, o qualcosa di simile, mentre faccio una sostituzione?

Ad esempio, se in modalità normale scrivo:

:%s/potato/

Posso ottenere tutte le potatos evidenziate sul mio file, proprio come sono evidenziate da incsearchquando scrivo

/potato

?

Questo mi aiuterebbe già molto quando uso le espressioni regolari. Sarebbe molto bello avere questo quando scrivo questo:

:%s/potato/banana/

Sostituirebbe la potatos con la bananas e le evidenzierebbe - forse le sostituzioni dovrebbero essere di un colore diverso. Non poteva "eseguire il commit" della modifica fino a quando non ho premuto Invio).

Al momento sto usando Neovim, nel caso mi aiuti.


1
Intendi incsearch? hlsearchdovrebbe funzionare ootb, se scrivo :%s/potato/\0/per sostituire potatocon se stesso, vedo tutte le partite evidenziate.
jjaderberg,

Inded, intendevo incsearch. Sostituendo alla mia domanda, grazie.
kikito,

Probabilmente non è kosher ma :/pattern<CR>funziona bene quindi aggiungi% s e la stringa di sostituzione. Quindi di nuovo affina la ricerca e usa CTR-R / per incollare la parte di ricerca di:%s/
Steve

Aggiunta a @jjaderberg: :%s/potato/carrot/cti permetterà di saltare ("confermare") attraverso i tuoi rimpiazzi (aggiungi gper sostituire tutte le istanze sulla stessa linea) e con hlsearchli vedrai in anticipo.
Rolf

Risposte:


9

Dopo un po 'di ricerche, ho trovato questo problema di NeoVim , che a sua volta è stato chiuso da questo PR , che mi ha portato inccommandall'ambientazione. Aggiungendo questo al mio file di configurazione:

set inccommand=nosplit

fa sì che NeoVim si comporti quasi esattamente come ho richiesto nella mia domanda. Non ho trovato qualcosa di equivalente per Vim normale, ma non l'ho cercato molto energicamente.


4
Nella vostra situtaion, per incsearchin subtitutions (essendo un Vimmer pigro e lento ad adottare le cose neo) avrei probabilmente cercare di patate ( /potato) godendo ordinario ricerca incrementale highlighighting, e poi sostituirlo con una ricerca vuoto: %s//banana. Ma non so come si paragona ad set inccommand=nosplitaltri aspetti.
Jjaderberg,

Grazie! Non conoscevo il "trucco di ricerca vuoto". Cercherò di ricordarmelo quando vim sui miei server
kikito

1
@jjaderberg dal modo in cui mi è piaciuta inccommandcosì tanto l' impostazione che ho realizzato un asciinema che lo mostra al lavoro, nel caso in cui ti motivi a provare neovim
kikito

2
@jjaderberg Penso che sia degno di essere una risposta.
Ricco

Sfortunatamente, il collegamento ad asciinema ora è morto.
sjy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.