Me di cuenta de que cuando lo uso, :nohlsearch
en realidad no hace lo mismo que :set nohlsearch
.
En particular, la hlsearch
configuración no está realmente desactivada (que es lo que :set hlsearch
) logra.
Para demostrar lo que quiero decir:
:set hlsearch
:nohlsearch
:echo &hlsearch
Esto imprime 1
(¡ hlsearch todavía está configurado! )
:set hlsearch
:set nohlsearch
:echo &hlsearch
Esto se imprime 0
porque desactivamos hlsearch usando la forma estándar para desactivar una configuración en vim.
Entonces me pregunto porque tiene que haber alguna razón real para :nohlsearch
que exista el comando ex.
La razón por la que me importa es que ahora tengo una necesidad en mi secuencia de comandos vim para probar si el resaltado de búsqueda está activo, y dado que estaba usando en :nohlsearch
lugar de ": set nohlsearch" en mi otra secuencia de comandos, mi &hlsearch
prueba siempre regresa 1
. Así que me pregunto qué estoy cambiando al dejar de usar el nohlsearch
comando ex.
:nohlsearch
está vigente o no ... Creo que en su ausencia tengo que recurrir al seguimiento de todas las:nohlsearch
llamadas con una variable.nnoremap <silent> <expr> <boundkey> SearchHighlight()
dondeSearchHighlight()
puede devolver una cadena":silent nohlsearch\<CR>"
. También gracias por elv:hlsearch
consejo, justo lo que necesitaba.¿Su script requiere que se conozca el estado actual de resaltado?
Para desactivar
hlsearch
solo la búsqueda actual, usoCtrl-l
, con esto en mi .vimrc:El resaltado de búsqueda regresa con la siguiente búsqueda cuando se usa el comando anterior.
Ctrl-l
es conveniente porque su uso normal es borrar y volver a dibujar la pantalla.Para activar o desactivar el estado de resaltado de búsqueda de forma persistente, utilizo F3 como alternar:
fuente