búsquedas separadas en ventanas en VIM
Pregunta
Cuando divido VIM para mostrarme algunos archivos o partes diferentes del mismo archivo, ¿hay alguna forma de que realice una búsqueda en una ventana y una búsqueda diferente en otra? Por ejemplo, me gustaría que la ventana superior tenga el patrón de búsqueda foo
y la ventana inferior tenga el patrón de búsqueda bar
.
El patrón de búsqueda activa afecta lo que se resalta cuando se usa el resaltado de búsqueda, y es bastante molesto cuando tengo foo
resaltado en la ventana superior, y luego cambio a la ventana inferior y busco < code> bar y foo
deja de resaltarse en la ventana superior.
Editar: Esta pregunta parece estar relacionada, aunque no estoy seguro de que sea un duplicado exacto.
Solución
Utilizo este script para resaltar múltiples patrones de búsqueda.
Otros consejos
La respuesta de Canopus es probablemente la mejor manera de hacerlo si está usando esto con frecuencia, pero si desea hacerlo con una instalación de vanilla vim (o más al punto, sin instalar ningún complemento), simplemente puede hacerlo :
:call matchadd('Search', 'foo')
:call matchadd('Search', 'bar')
Puede borrar todas las coincidencias con
:call clearmatches()
También hay formas de ser más exigente con lo que borra (con : call matchdelete (...)
) guardando la salida de matchadd en una variable. Puede leer más sobre esto en : help matchadd ()
y : help matchdelete ()
Si no está utilizando un archivo de sintaxis demasiado complicado (y específicamente, no está utilizando el resaltado rainbow.vim), probablemente también pueda hacerlo con:
:syn keyword Search foo
:syn keyword Search bar
y borrarlo con
:syn clear Search
La única ventaja posible de esto en la que puedo pensar es que si hay un lote de coincidencias que está intentando resaltar, un resaltado de palabra clave
es un mucho más rápido que un resaltado match
(ya que este último utiliza una búsqueda de expresión regular). Todavía puede hacer una coincidencia syn keyword
si está usando rainbow.vim, pero el comando es mucho más complicado.