Vim: ¿seleccionar texto resaltado por búsqueda?

Vim: ¿seleccionar texto resaltado por búsqueda?

En vim, a menudo realizo búsquedas para saltar a una palabra o frase en lugar de navegar allí con h/j/k/l. Luego presiono npara saltar entre ocurrencias.

Digamos que tengo este texto:

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

Escribo /an arrowy presiono enter. Esa frase está resaltada y salto a ella con n.

ahora quieroseleccione visualmente ese texto, tal vez para cambiarlo o eliminarlo. (Sí, conozco el :scomando de sustitución).

Como mi cursor está en la letra "a" al principio de "una flecha", puedo presionar vy luego presionar eun par de veces para resaltar la frase completa. Pero tengo la sensación de que hay una forma más corta y semántica. Después de todo, ya he especificado el texto que me interesa.

¿Cómo podría redactar un comando para decir"¿Seleccionar visualmente la selección de búsqueda actual?"

Respuesta1

Se puede utilizar gnen la versión 7.4 en adelante (y gNpara retroceder). Reemplaza el v//etruco.

Busque hacia adelante el último patrón de búsqueda utilizado, como con `n`, e inicie el modo Visual para seleccionar la coincidencia.

ver :help gnoeste Vimcastpara más información.

Respuesta2

Prueba esto:

/an arrow
v//e

Entra en modo visual, repite la última búsqueda y selecciona hasta el final.

Respuesta3

Descubrí que v//epor sí solo es insuficiente porque después de salir del modo visual, saltar al resultado de búsqueda siguiente/anterior coloca el cursor al final del resultado, en lugar de al principio como normalmente se esperaría.

Para solucionar este problema, primero debemos saltar al final del resultado de la búsqueda ( //e) y luego seleccionar visualmente su comienzo ( v??):

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

Salud.

Respuesta4

Una forma "más tonta" de hacerlo es asignar una tecla (en este caso F5) como se muestra a continuación:

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

Después de /an arrowpresionar F5.

información relacionada