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 presionon
oN
, 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 nohls
Sin embargo, esta solución no es perfecta, ya que aún tiene que escribir
:nohls
qué 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
n
asignaciones, deberá desactivarlas. Por ejemplo, solía tener¡Estas dos asignaciones no son compatibles entre sí!
fuente
set hlsearch
. Si lo tiene definidovimrc
, se sobrescribirá:noh
cada vez que obtenga elvimrc
. Para solucionar esto tengoif !&hlsearch | set hlsearch | endif
en 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
CursorMoved
yInsertEnter
.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
:nohlsearch
comando (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
i
para 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
n
yN
ya no funcionan, y también cosas como:%s//something
o: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
:help
secciones relevantes !Lo uso
<Leader><Enter>
como atajo:hls
y 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