¿Existe alguna manera fácil / rápida de "tirar" en el registro de "última búsqueda" de vim ("/)?
De la documentación de vim, parece que la respuesta es no, pero que se puede asignar mediante un comando "dejar":
It is writable with ":let", you can change it to have 'hlsearch' highlight
other matches without actually searching. You can't yank or delete into this
register.
Idealmente, lo que me gustaría hacer es algo como:
"/5yw
que arrastraría las siguientes 5 palabras debajo del cursor y las colocaría en el último búfer de búsqueda
Alternativamente, si hay una forma de buscar el contenido de un registro con nombre, también funcionaría. En otras palabras, si pudiera hacer:
"A5yw
y luego busque lo que está en el registro A, eso también funcionaría.
Lo más cerca que puedo hacer es ingresar a un registro con nombre y luego copiar ese registro en el último registro de búsqueda, por ejemplo
"A5yw
:let @/=@A
A riesgo de hacer una pregunta larga más larga, quiero decir que no siempre son 5 palabras las que me gustaría "tirar y buscar": a veces son 17 caracteres, a veces hasta el final de la línea, etc. por lo que una macro codificada no me da la flexibilidad que quisiera.
"ayw
(minúsculas) reemplazaría el contenido del registro 'a', mientras"Ayw
que agregaría al registro 'a'Si no usó ningún registro para almacenar el texto extraído, vim usa
0
register. Puede buscarlo escribiendoCtrl-R 0
después/
.Un ejemplo más complicado. Digamos que desea buscar en otro búfer el texto entre comillas que se encuentra debajo del cursor en este momento:
yi"
(tirar cita interna)/Ctrl-R 0
fuente
"Ayw
produce una cadena agregada en el registro A. Pero simplemente escribiryw
y luego escribirCtrl-R 0
después/
siempre da exactamente lo que tiré.Estoy usando el siguiente código para eso:
fuente
Buscando una selección:
si primero desea tirar de una sección de una línea, luego use "v" y muévase con los cursores hasta que haya marcado lo que desea, luego presione y para tirar y ahora la selección está en el registro 0
entonces puedes escribir
/Ctrl-R 0
fuente
Entonces, básicamente, una versión extendida de los comandos # y *, ¿verdad? Parece que desea definir un operador personalizado (un comando que espera un movimiento). En realidad, nunca he hecho esto, pero encontré un complemento que parece que podría facilitarlo. Se proporcionan algunos ejemplos.
fuente