Vim – selecionar texto destacado pela pesquisa?

Vim – selecionar texto destacado pela pesquisa?

No vim, costumo realizar pesquisas para acessar uma palavra ou frase em vez de navegar até lá com h/j/k/l. Então eu bati npara pular entre as ocorrências.

Digamos que eu tenha este texto:

Time flies like an arrow; fruit flies like a banana. - Groucho Marx

Eu digito /an arrowe clico em Enter. Essa frase está destacada e eu pulo para ela com n.

Agora eu queroselecione visualmente esse texto, talvez para alterá-lo ou excluí-lo. (Sim, estou ciente do :scomando de substituição.)

Como meu cursor está na letra “a” no início de “uma seta”, posso clicar ve pressionar ealgumas vezes para destacar a frase inteira. Mas tenho a sensação de que existe uma maneira mais curta e semântica. Afinal, já especifiquei o texto que me interessa.

Como posso compor um comando para dizer"selecionar visualmente a seleção de pesquisa atual?"

Responder1

Você pode usar gnna versão 7.4 em diante (e gNvoltar). Ele substitui o v//etruque.

Procure o último padrão de pesquisa usado, como com `n`, e inicie o modo Visual para selecionar a correspondência.

Veja :help gnoueste VimcastPara maiores informações.

Responder2

Experimente isto:

/an arrow
v//e

Entra em modo visual, repete a última busca e seleciona até o final.

Responder3

Descobri que isso v//epor si só é insuficiente porque depois de sair do modo visual, pular para o resultado da pesquisa seguinte/anterior coloca o cursor no final do resultado, em vez de no início, como seria de esperar normalmente.

Para corrigir isso, devemos primeiro pular para o final do resultado da pesquisa ( //e) e depois selecionar visualmente até o início ( v??):

" visually select a search result
nnoremap g/ //e<Enter>v??<Enter>

Saúde.

Responder4

Uma maneira "mais burra" de fazer isso é mapear uma tecla (neste caso F5) como abaixo:

nnoremap <F5> v/<c-r>=strpart(@/,1) . '/e+1'<CR><CR>

Depois de /an arrowacertar F5.

informação relacionada