J'ai remarqué que lorsque j'utilise :nohlsearch
cela, cela ne fait pas la même chose que :set nohlsearch
.
En particulier, le hlsearch
réglage n'est pas réellement désactivé (ce qui est le cas :set hlsearch
).
Pour démontrer ce que je veux dire:
:set hlsearch
:nohlsearch
:echo &hlsearch
Cela s'imprime 1
( hlsearch est toujours défini! )
:set hlsearch
:set nohlsearch
:echo &hlsearch
Cela s'imprime 0
car nous avons désactivé hlsearch en utilisant la méthode standard pour désactiver un paramètre dans vim.
Je me demande donc en quelque sorte parce qu'il doit y avoir une raison réelle pour que la :nohlsearch
commande ex existe.
La raison pour laquelle je m'inquiète est que j'ai maintenant besoin dans mes scripts vim de tester si la mise en évidence de la recherche est active, et puisque j'utilisais à la :nohlsearch
place de ": set nohlsearch" dans mes autres scripts, mon &hlsearch
test revient toujours 1
. Je me demande donc ce que je change en n'utilisant plus la nohlsearch
commande ex.
:nohlsearch
est en vigueur ou non ... Je pense qu'en son absence, je dois recourir au suivi de tous les:nohlsearch
appels avec une variable.nnoremap <silent> <expr> <boundkey> SearchHighlight()
oùSearchHighlight()
peut retourner une chaîne":silent nohlsearch\<CR>"
. Merci aussi pour l'v:hlsearch
astuce, juste ce dont j'avais besoin.Votre script requiert-il que l'état actuel de la mise en évidence soit connu?
Pour désactiver
hlsearch
uniquement la recherche en cours, j'utiliseCtrl-l
, avec ceci dans mon .vimrc:La mise en surbrillance de la recherche revient à la recherche suivante lorsque vous utilisez la commande ci-dessus.
Ctrl-l
est pratique car son utilisation normale consiste à effacer et à redessiner l'écran.Pour modifier l'état de mise en surbrillance de la recherche de manière permanente ou désactivée, j'utilise F3 comme bascule:
la source