Siempre que desee buscar texto en vim, escriba /y luego la cadena que está buscando.
Sin embargo, cuando la cadena es larga y desea hacerlo varias veces, ¿hay alguna manera de hacerlo para que no tenga que escribir /andthisreallylongstring
más de una vez?
Respuestas:
Presione "n" después de completar una búsqueda, luego se repetirá la acción anterior (búsqueda).
fuente
N
iremos al resultado anterior./
q/
mostrará una ventana editable con todos los términos de búsqueda recientes./
e Intro se repetirá la búsqueda anterior. Al presionar?
e Intro se repetirá la búsqueda anterior hacia atrás./Ctrl-F
es una alternativa aq/
eso puede ser un mnemotécnico más fácil (ctrl-f == find). Al igual que q, también funciona para el modo de comando.Si la cadena que busca está debajo del cursor, puede escribir *para buscarla hacia adelante o #hacia atrás.
fuente
La forma en que generalmente busco es algo así;
Vim mantiene un historial de sus búsquedas, por lo que si necesita búsquedas anteriores, puede presionar '/' y usar las teclas ARRIBA y ABAJO o <Ctrl-P> <Ctrl-N> para explorar el historial de búsqueda.
También puedes usar '?' en lugar de '/' para buscar hacia atrás.
También me gusta usar:
Ahora solo será una búsqueda entre mayúsculas y minúsculas si tiene caracteres en mayúscula en la cadena de búsqueda.
fuente
Dos consejos adicionales que pueden hacer que su búsqueda sea más eficiente son
set hlsearch
yset incsearch
.set hlsearch
, bueno, destaca sus resultados de búsqueda. Escriba:noh
para desactivarlos cuando ya no lo necesite.set incsearch
activa la búsqueda incremental.Extraído de
:help incsearch
Sin
incsearch
, sus resultados solo se mostrarán después de presionar<CR>
su palabra clave de búsqueda.Ejemplo:
Quieres buscar
wildignore
Escribe
/wild
y la primera coincidencia se resalta automáticamente.Luego escribe
i
y pasa a la siguiente coincidencia correcta.fuente
Otro consejo aún no cubiertos: Al pulsar los caracteres
q
y, a continuación/
, le dará una lista de términos de búsqueda anteriores. Puede editarlos como cualquier otra línea en un documento y luego presionar enter para volver a usarlos en una nueva búsqueda.fuente
Después de presionar /para comenzar la búsqueda, puede presionar la flecha hacia arriba para desplazarse por el historial de búsqueda.
Puede ingresar una expresión regular para evitar tener que escribir todo el término de búsqueda:
and.*longstring
fuente
¿Simplemente golpear / sin argumentos a continuación no funciona para usted? En todos nuestros sistemas, eso provoca una repetición de la búsqueda que se realizó por última vez.
fuente
Hay un buen patrón que puede seguir para buscar texto extraído . Entonces ni siquiera tiene que escribir la palabra en sí misma, si ha navegado a ella por otro medio que no sea una búsqueda. En resumen, si está en el primer carácter de la palabra que desea buscar:
(luego continúe al próximo partido con n o N)
Sin embargo
*
(o#
) logra casi lo mismo que todos estos comandos. La única diferencia es que puede ser flexible según la cantidad de la palabra que especifique (en lugar de e, al final de la palabra, puede seleccionar la cantidad que desee, por ejemplo, 9l)fuente
/string
- Buscar cadena hacia adelante?string
- Buscar de nuevo la cadenan
- Buscar la siguiente instancia de cadenaN
- Buscar instancia anterior de cadenafuente
Mucho tiempo al programar querré buscar
aVeryLongVariableNameInTheProgram
.En vim, puede arrastrar fácilmente el texto a un búfer / registro y luego buscarlo:
"Byw
para tirar textoaVeryLongVariableNameInTheProgram
al búfer B (elige tu favorito, usé B)/^RB
(barra oblicua, Ctrl-R, B) para pegar el búfer B en la línea de búsquedaPor supuesto, también puede tirar hasta el final de la línea, etc., en lugar de tirar una sola palabra; simplemente uso la secuencia anterior todo el tiempo.
fuente
Además, puede pegar el contenido de cualquier registro en el mensaje de búsqueda presionando Ctrl+ Ry luego el nombre del registro, por ejemplo, / Ctrl+ R0 Enter.
fuente
¿La cadena larga que está ingresando es un nombre de variable? ¿O una cadena larga que está en tu texto? Luego presione
*
para buscar la palabra / cadena debajo del cursor.fuente