Percebi que, quando eu uso, :nohlsearch
ele realmente não faz a mesma coisa que :set nohlsearch
.
Em particular, a hlsearch
configuração não é realmente desativada (que é o que :set hlsearch
) realiza.
Para demonstrar o que quero dizer:
:set hlsearch
:nohlsearch
:echo &hlsearch
Isso é impresso 1
( hlsearch ainda está definido! )
:set hlsearch
:set nohlsearch
:echo &hlsearch
Isso é impresso 0
porque desativamos o hlsearch usando a maneira padrão de desativar uma configuração no vim.
Então, eu meio que me pergunto, porque deve haver alguma razão real para o :nohlsearch
comando ex existir.
A razão pela qual me preocupo é que agora tenho uma necessidade no script do vim para testar se o destaque da pesquisa está ativo e, como eu estava usando, em :nohlsearch
vez de ": set nohlsearch", nos meus outros scripts, meu &hlsearch
teste sempre retorna 1
. Então, eu estou querendo saber o que estou mudando por não usar mais o nohlsearch
comando ex.
:nohlsearch
está em efeito ou não ... Acho que, na ausência dele, tenho que recorrer ao rastreamento de todas as:nohlsearch
chamadas com uma variável.nnoremap <silent> <expr> <boundkey> SearchHighlight()
whereSearchHighlight()
pode retornar uma string":silent nohlsearch\<CR>"
. Também obrigado pelav:hlsearch
dica, exatamente o que eu precisava.Seu script exige que o estado atual de destaque seja conhecido?
Para desativar
hlsearch
apenas a pesquisa atual, eu usoCtrl-l
isso no meu .vimrc:O realce da pesquisa retorna com a próxima pesquisa ao usar o comando acima.
Ctrl-l
é conveniente, porque o uso normal é limpar e redesenhar a tela.Para alterar o estado de destaque da pesquisa ativada ou desativada persistentemente, eu uso F3 como minha alternância:
fonte