Visual seleziona il risultato di ricerca corrente


9

Ho hlsearchimpostato, ma a volte mi induce a pensare che ho selezionato visivamente il termine di ricerca, e posso semplicemente premere cper cambiarlo.

Il termine cercato potrebbe non essere un semplice numero di lettere, parole, persino righe - e, comunque, non voglio contare.

C'è un modo per vh(o ch), diciamo, dove hcorre fino a quando l'attuale evidenziazione non termina?

Risposte:


14

Puoi usare il gnmovimento per questo, seleziona il successivo elemento cercato.

Puoi usarlo così:

/foo<CR>
gn            -> select the next "foo"
sbar<Esc>     -> (optional) substitute it with "bar"

Bonus: per .ripetere la ricerca e la modifica, usa a cper fare tutto in un solo comando:

/foo<CR>
cgnbar<Esc>
...           -> find and change the 3 next foo

1
Fantastico! Grazie. (A chiunque a me manchi il motivo .per cui ripeterà l'intera azione e non potrà farlo funzionare - leggi più attentamente - cprima! Non potrei chiedere di meglio.)
OJFord

3
Nota che puoi anche usare gNper selezionare visivamente la partita precedente.
statox

Qual è la differenza tra questo e semplicemente premendo nper arrivare al prossimo risultato di ricerca?
user1717828

fa anche il cambiamento, quindi invece di ripetere n.(prossima occorrenza, ripetere la modifica), puoi semplicemente premere .(ripetere la modifica, che è "cambia la prossima occorrenza")
nobe4

Infatti, quando .invoca gn, l'originale fooè scomparso, quindi Vim cerca il successivo foo. Così gnfa quello che navrebbe fatto comunque (e altro). Ma, come nel caso n, nota che funziona bene solo quando barnon contiene foo!
joeytwiddle,
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.