Me encanta la configuración de "hlsearch", pero después de terminar de buscar, me resulta desagradable. Especialmente si busco algo que tenga muchas coincidencias. Sé que puedo apagar esto con
:set nohlsearch
Pero esto requiere un total de 16 pulsaciones de teclas, y aún más molesto, tengo que volver a encenderlo para mi próxima búsqueda con
:set hlsearch
¿Hay alguna manera de que hlsearch se active automáticamente cuando empiece a buscar y se apague cuando termine de buscar? Por ejemplo, si entro en el modo de inserción o modifico el texto, ¿hlsearch se apaga sin presionar ninguna tecla adicional?

/o?, o si presiononoN, se encenderá sin que necesite presionar más botones.:nno <BS> :set hls!\|set hls?<CR>- una línea, una pulsación de tecla, retroalimentación de estado y no intenta adivinar cuándo puede o no querer resaltar. A veces quiero que quede resaltado en la pantalla al editar. A veces no lo hago, por ejemplo, usar/como movimiento con un operador.nnoremap <M-\> :set hlsearch!<CR><Bar>:echo 'hlsearch: ' . ['Off', 'On'][&hlsearch]<CR>Respuestas:
Hay una forma mucho más conveniente. En lugar de usar
que en realidad desactiva la configuración de hlsearch, usa
Esto solo desactivará hlsearch hasta que vuelva a buscar. Desde
:help nohlsSin embargo, esta solución no es perfecta, ya que aún tiene que escribir
:nohlsqué es difícil de hacer después de cada búsqueda. Puede solucionar esto con un mapeo, por ejemplo¡Pero hay una solución aún mejor ! haya14busa / incsearch.vim . Esto es, al menos en mi opinión, un complemento vim esencial . La característica principal es que todas las coincidencias de búsqueda se resaltan en tiempo real, a medida que escribe su expresión regular. Por ejemplo:
Sin embargo, una característica secundaria que también se proporciona es la opción de activar y desactivar hlsearch inmediatamente cuando comienza / detiene la búsqueda. Para habilitar esta función, deberá agregar
a tu
.vimrc.Si tiene otras
nasignaciones, deberá desactivarlas. Por ejemplo, solía tener¡Estas dos asignaciones no son compatibles entre sí!
fuente
set hlsearch. Si lo tiene definidovimrc, se sobrescribirá:nohcada vez que obtenga elvimrc. Para solucionar esto tengoif !&hlsearch | set hlsearch | endifen mivimrc. (Y este es otro problema que resuelve el complemento.)vim-cool es un complemento simple que hace justamente esto.
Funciona sin reasignar mediante el uso de los comandos automáticos
CursorMovedyInsertEnter.fuente
Yo uso
<Leader><Enter>como atajo para:noh. (Mi líder es,, así que está bastante cerca)Esto desactivará los resaltados hasta su próxima búsqueda.
fuente
Como ya ha notado en su propia respuesta , es mucho más eficiente desactivar el resaltado con el
:nohlsearchcomando (que se puede abreviar:noh) en lugar de desactivar toda la función y luego volver a activarla la próxima vez que busque.Si desea desactivar el resaltado cada vez que usa
ipara ingresar al modo de inserción, puede crear una asignación simple para hacerlo:Se deja como un ejercicio para que el lector cree mapeos similares para otros comandos donde desean que el resaltado esté desactivado.
fuente
Puede sonar estúpido o ingenuo, pero lo que hago cuando quiero detener el resaltado es buscar una cadena aleatoria que (casi con certeza) no está presente en el documento. Algo como esto:
De acuerdo, requiere algunos golpes de tecla, pero son realmente aleatorios, por lo que se pueden escribir en poco tiempo.
fuente
nyNya no funcionan, y también cosas como:%s//somethingo:g//something. También satura tu historial de búsquedaHe encontrado que es más intuitivo para reasignar el Ctrl- Lrepinte para incluir
:nohls:fuente
:helpsecciones relevantes !Lo uso
<Leader><Enter>como atajo:hlsy tengo a mi líder establecido como espacio.Después de buscar un elemento se resaltará, para apagarlo, presione
<Space><Esc>. Y si decide que desea volver a mostrar los resultados de la búsqueda, presione<Space><Esc>. Loshls!medios asignan este enlace de teclas para alternar la configuración dehls(abreviatura dehlsearch, es decir, resaltado de resultados de búsqueda) (por lo que!alterna la configuración justo antes).fuente
Agregue esta macro a su .vimrc
Esto te permitirá alternar la iluminación con #h
fuente