Me di cuenta de que cuando lo uso, :nohlsearchen realidad no hace lo mismo que :set nohlsearch.
En particular, la hlsearchconfiguració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 0porque 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 :nohlsearchque 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 :nohlsearchlugar de ": set nohlsearch" en mi otra secuencia de comandos, mi &hlsearchprueba siempre regresa 1. Así que me pregunto qué estoy cambiando al dejar de usar el nohlsearchcomando ex.

:nohlsearchestá vigente o no ... Creo que en su ausencia tengo que recurrir al seguimiento de todas las:nohlsearchllamadas con una variable.nnoremap <silent> <expr> <boundkey> SearchHighlight()dondeSearchHighlight()puede devolver una cadena":silent nohlsearch\<CR>". También gracias por elv:hlsearchconsejo, justo lo que necesitaba.¿Su script requiere que se conozca el estado actual de resaltado?
Para desactivar
hlsearchsolo 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-les 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