Búsqueda de selección en vim

Utilizo plugins vim y vim para Visual Studio cuando escribo C ++. A menudo, me parece que quiero buscar una cadena dentro de una función, por ejemplo, cada llamada a object->public_member.memberfunc() .

Sé que vim ofrece una forma conveniente de buscar una sola palabra, al presionar * y # , y también puede buscar cadenas de caracteres con la barra / comando omnipresente. Al intentar buscar todas las instancias de una cadena más larga como la anterior, tarda un poco en volver a escribir después de / .

¿Hay alguna forma de buscar la selección? Por ejemplo, resalte con v , luego copie con y , ¿hay alguna forma de pegar después de / ? ¿Hay un atajo más fácil?

Comprueba este consejo de Vim: busca el texto seleccionado visualmente

O simplemente puede tirar el texto seleccionado con y y ir al modo de búsqueda / , luego puede pegar el último texto extraído con Ctrl + R 0

Sobre la base de la respuesta de Arcanex, aquí hay otra forma de hacer lo que desea.

  1. Marque el texto que desea buscar
  2. q / p
  3. Entrar

Explicación

q/ funciona de manera similar a la búsqueda de vainilla / excepto que estás en el modo comando así que p realmente “pega” en lugar de escribir el carácter p . Entonces, lo anterior jalará los caracteres que está buscando y luego los pegará en una búsqueda.

(ver :help q/ )

Use q / en lugar de solo / . (Lo mismo con q:) . ¡Ahora puedes editar VIM a través de tu comando y tu historial de búsqueda! (Pruebe Ctrl-N y Ctrl-P en algún momento).

Acabo de aprender (a través del excelente libro Practical Vim ) que hay un complemento para eso. Puede encontrar el complemento en GitHub .

El complemento le permite buscar una selección visual con * y # .

En realidad, puede seleccionar texto visualmente y presionar * y # para buscar la próxima ocurrencia … Funcionará igual, la única advertencia es que:

El espacio en blanco en la selección coincide con cualquier espacio en blanco, al buscar (buscar “mundo hello” también encontrará “hola” al final de una línea, con “mundo” al comienzo de la siguiente línea).

http://vim.wikia.com/wiki/Search_for_visually_selected_text