Visual selecionar resultado da pesquisa atual

9

Eu hlsearchconfigurei, mas às vezes me leva a pensar que tenho o termo de pesquisa selecionado visualmente e que pode ser pressionado cpara alterá-lo.

O termo pesquisado pode não ser um número fácil de letras, palavras e até linhas - e, de qualquer maneira, não quero contar.

Existe uma maneira de vh(ou ch), digamos, onde hé executado até que o realce atual pare?

OJFord
fonte

Respostas:

14

Você pode usar o gnmovimento para isso, ele seleciona o próximo elemento pesquisado.

Você pode usá-lo assim:

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

Bônus: Para .repetir a pesquisa e a alteração, use a cpara fazer tudo em um comando:

/foo<CR>
cgnbar<Esc>
...           -> find and change the 3 next foo
nobe4
fonte
11
Fantástico! Obrigado. (Qualquer um que gosta de mim perde porque .vai repetir a ação inteira, e não pode fazê-lo funcionar - leia mais cuidado - c!. Primeiro não poderia pedir para melhor)
OJFord
3
Observe que você também pode usar gNpara selecionar visualmente a correspondência anterior.
Statox
Qual é a diferença entre isso e pressionar npara chegar ao próximo resultado da pesquisa?
user1717828
ele faz a mudança também, então ao invés de repetir n.(próxima ocorrência, repetir a modificação), você pode simplesmente pressionar .(repetir a modificação, que é "mudar a próxima ocorrência")
nobe4
De fato, quando .invocado gn, o original foodesapareceu, então o Vim procura o próximo foo. O mesmo gnacontece com o nque teria feito de qualquer maneira (e mais). Mas, como acontece com n, observe que isso só funciona bem quando barnão contém foo!
Joeytwiddle 20/09/16