Visual sélectionner le résultat de la recherche actuelle


9

J'ai hlsearchfixé, mais cela m'endort parfois en pensant que j'ai le terme de recherche sélectionné visuellement, et que je peux simplement appuyer cdessus pour le changer.

Le terme recherché n'est peut-être pas un nombre facile de lettres, de mots, voire de lignes - et de toute façon, je ne veux pas compter.

Existe-t-il un moyen vh(ou ch), par exemple, où hs'exécute jusqu'à ce que la mise en surbrillance actuelle s'arrête?

Réponses:


14

Vous pouvez utiliser le gnmouvement pour cela, il sélectionne l'élément recherché suivant.

Vous pouvez l'utiliser comme ceci:

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

Bonus: Pour avoir .répété la recherche et le changement, utilisez a cpour tout faire en une seule commande:

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

1
Fantastique! Merci. (Quiconque comme moi manque pourquoi .répétera toute l'action et ne peut pas le faire fonctionner - lisez plus attentivement - d' cabord! Je ne pourrais pas demander mieux.)
OJFord

3
Notez que vous pouvez également utiliser gNpour sélectionner visuellement la correspondance précédente.
statox

Quelle est la différence entre cela et le simple fait d'appuyer sur npour accéder au résultat de recherche suivant?
user1717828

il fait aussi le changement, donc au lieu de répéter n.(prochaine occurrence, répéter la modification), vous pouvez simplement appuyer sur .(répéter la modification, qui est "changer la prochaine occurrence")
nobe4

En effet, lors de l' .invocation gn, l'original fooa disparu, donc Vim recherche le suivant foo. Il en gnva de même de ce nqui aurait fait de toute façon (et plus). Mais, comme avec n, notez que cela ne fonctionne bien que lorsqu'il barne contient pas foo!
joeytwiddle
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.