Usando Vim, a veces me encuentro mirando una sección del código fuente por un tiempo y de repente quiero que aparezca alguna variable en la pantalla. Eso es fácil: lo /<var>
que los destaca a todos. Mi problema es que la mayoría de las veces la búsqueda cambia mi ventana, así que no estoy mirando el código fuente desde el mismo lugar. Incluso si solo ha cambiado algunas líneas, todavía me desconcierta, ya que necesito tomar unos segundos para averiguar a dónde se han movido las cosas.
¿Es posible resaltar un término de búsqueda sin mover el cursor a la siguiente coincidencia?
vim
search
highlighting
Andrew Wood
fuente
fuente
Respuestas:
http://vim.wikia.com/wiki/VimTip1572
Si usó este complemento, simplemente puede habilitar la funcionalidad
\metro
luego use una tecla NumPad para asignar un color a esa palabra en todas partes sin mover el cursor.
1
Puede usar muchos aspectos destacados diferentes a la vez para muchas palabras diferentes, o patrones de búsqueda más complejos si lo desea.
fuente
La respuesta de skyblue muestra el núcleo de la idea de cómo usar el resaltado de búsqueda normal para lograr lo que desea.
Extendí esa técnica haciendo una combinación de teclas que funciona de manera similar al
*
comando , pero sin pasar realmente a la siguiente coincidencia.Agradezco a garyjohn por señalar el
expand()
equivalente a*
la selección de palabras de (para evitar usarlo*
y restaurar la vista). Esto simplifica el código lo suficiente como para que pueda ir directamente a la asignación (se evita usar una función). También he agregado una asignación que coincide con palabras parciales (comog*
).fuente
normal *
reemplazandolet @/ = @/
conlet @/ = expand("<cword>")
.*
, pero<cword>
es así.También puede establecer el registro de búsqueda en la variable que desea hacer coincidir.
Primero, asegúrese de que el resaltado de búsqueda esté activado:
Luego, puede configurar el registro de búsqueda con:
Esto resaltará todas las apariciones de variables sin saltar al próximo partido.
Para más información, ver
:help @/
fuente
Una forma es usar el
:match
comando, por ejemplo,Eso resaltará la palabra debajo del cursor usando el grupo resaltado Pregunta. A menudo uso el grupo de preguntas porque en mi terminal es un bonito color verde. Para ver los grupos de resaltado disponibles, ejecute
Los
^R
y^W
son Ctrl-R y Ctrl-W, respectivamente, y se reemplazan por la palabra debajo del cursor. Verpara más sobre eso. Ver
para más sobre el
:match
comando. Para borrar ese resaltado, simplemente ejecutesin argumentos
fuente
Además de:
Es posible que desee:
fuente
Similar a
*
tenemos:Vale la pena echarle un vistazo
:h [I
. Allí encontramos algunas cosas interesantes relacionadas con sus necesidades.Hay una pregunta similar en stackoverflow donde pongo mi respuesta (un poco más completa)
fuente