editar - vim python
¿Hay alguna forma de resaltar búsquedas múltiples en(g) Vim? (10)
Quiero buscar múltiples cadenas en Vim / gVim y tenerlas resaltadas en diferentes colores. ¿Hay alguna forma de hacer esto con Vim out-box o con un plug-in?
El complemento My Mark puede resaltar varias palabras en diferentes colores simultáneamente, como la búsqueda incorporada. Viene con muchas asignaciones y comandos, permite persistir los patrones y admite múltiples paletas de colores.
Esto puede hacerse manualmente, sin ningún script, para dos patrones de búsqueda.
:match Search /pattern/
:match Search /<CTRL-R>/ # highlight the current search pattern
Buscar es el nombre del grupo resaltado, use la opción de completar para seleccionar otro grupo para resaltar con un color diferente.
:match <TAB>
:match <TAB> # completion will list all highlight group
Esto puede ser útil cuando no puede usar su propia configuración de vim.
:match none # clear the match pattern to stop highlighting
Hay dos formas simples de resaltar varias palabras en el editor vim.
- Vaya al modo de búsqueda, es decir, escriba '' / '' y luego escriba / v seguido de las palabras que desea buscar separadas por '' | ''(tubería).
Ej: / / vword1 | word2 | word3 - Vaya al modo de búsqueda y escriba las palabras que desea buscar separadas por '' / | ''.
Ej: / word1 / | word2 / | word3
Básicamente, la primera forma lo coloca en el modo de expresión regular para que no necesite colocar barras diagonales adicionales antes de cada tubería u otros delimitadores utilizados para la búsqueda.
MultipleSearch2 es otro script que está integrado con la búsqueda de vim: http://www.vim.org/scripts/script.php?script_id=1183
Para buscar múltiples cadenas en vim puedes hacer lo siguiente:
/search1/|search2
Esto funciona, y resaltará tanto search1
como search2
, pero con el mismo color. Tienes que hacer esto en el editor vim.
Prefiero el complemento de resaltado, simple y suficiente, puede resaltar palabras diferentes con colores diferentes automáticamente.
Sí, out-of-the-box puedes usar matchadd()
.
Para agregar un resaltado, ej. para espacios en blanco al final:
:highlight ExtraWhitespace ctermbg=grey guibg=grey
:call matchadd(''ExtraWhitespace'', ''/s/+$'', 11)
Para ver todas las coincidencias:
:echo getmatches()
Para eliminar coincidencias, use matchdelete()
. P.ej.:
:call matchdelete(7)
MultipleSearch : Resalta múltiples búsquedas al mismo tiempo, cada una con un color diferente.
http://www.vim.org/scripts/script.php?script_id=479
: Search // resaltará todas las ocurrencias de en el búfer actual. A posterior: Search resaltará todas las ocurrencias de en el búfer actual.
Intenta " Resaltar varias palabras ", que usa matchadd()
.
:%s /red/|green/|blue/
Sin embargo, no estoy seguro acerca de cómo mantener diferentes colores para diferentes palabras clave. Gracias.