Adoro a configuração "hlsearch", mas depois de terminar a pesquisa, acho desagradável. Especialmente se eu procurar algo que tenha muitas correspondências. Eu sei que posso desligar isso com
:set nohlsearch
Mas são necessárias 16 teclas pressionadas e, ainda mais irritante, eu preciso ativá-lo novamente para minha próxima pesquisa com
:set hlsearch
Existe uma maneira em que o hlsearch ative automaticamente quando inicio a pesquisa e desative quando terminar a pesquisa? Por exemplo, se eu entrar no modo de inserção ou modificar o texto, o hlsearch será desativado sem pressionar as teclas adicionais?
/
ou?
, ou se eu pressionarn
ouN
, ele será ativado sem que eu precise pressionar mais nenhum botão.:nno <BS> :set hls!\|set hls?<CR>
- uma linha, uma tecla pressionada, feedback de estado e não tenta adivinhar quando você pode ou não querer destacar. Às vezes, quero destacar à esquerda na tela ao editar. Às vezes não, por exemplo, usando/
um movimento com um operador.nnoremap <M-\> :set hlsearch!<CR><Bar>:echo 'hlsearch: ' . ['Off', 'On'][&hlsearch]<CR>
Respostas:
Existe uma maneira muito mais conveniente. Em vez de usar
que realmente desativa a configuração hlsearch, use
Isso só desativará o hlsearch até você pesquisar novamente. A partir de
:help nohls
No entanto, essa solução não é perfeita, pois você ainda precisa digitar o
:nohls
que é doloroso fazer após cada pesquisa. Você pode contornar isso com um mapeamento, por exemploMas existe uma solução ainda melhor ! haya14busa / incsearch.vim . Este é, pelo menos na minha opinião, um plugin essencial do vim. A principal característica é que todas as correspondências de pesquisa são destacadas em tempo real, enquanto você digita sua regex. Por exemplo:
No entanto, um recurso secundário que também é fornecido é a opção de ativar e desativar o hlsearch imediatamente quando você inicia / para a pesquisa. Para habilitar esse recurso, você precisará adicionar
para o seu
.vimrc
.Se você tiver outros
n
mapeamentos, precisará desativá-los. Por exemplo, eu costumava terEsses dois mapeamentos não são compatíveis um com o outro!
fonte
set hlsearch
. Se você o tiver definido,vimrc
ele sobrescreverá:noh
toda vez que você for buscar o arquivovimrc
. Para resolver isso eu tenhoif !&hlsearch | set hlsearch | endif
no meuvimrc
. (E isso é outro problema que os resolve plugin.)O vim-cool é um plugin simples que faz exatamente isso.
Ele funciona sem remapeamento por usando o
CursorMoved
eInsertEnter
autocomandos.fonte
Eu uso
<Leader><Enter>
como um atalho para:noh
. (Meu líder é,
, por isso é muito perto)Isso desativará os destaques até sua próxima pesquisa.
fonte
Como você já observou em sua própria resposta , é muito mais eficiente desativar o destaque com o
:nohlsearch
comando (que pode ser abreviado para:noh
), em vez de desativar o recurso inteiro e ligá-lo novamente na próxima vez que você pesquisar.Se você deseja desativar o destaque sempre que usar
i
para entrar no modo de inserção, é possível criar um mapeamento simples para fazer isso:É um exercício para o leitor criar mapeamentos semelhantes para outros comandos nos quais eles desejam desativar o destaque.
fonte
Pode parecer estúpido ou ingênuo, mas o que faço quando quero interromper o realce é procurar uma sequência aleatória que (praticamente certamente) não esteja presente no documento. Algo assim:
É verdade que são necessárias algumas teclas, mas elas são realmente aleatórias, para que possam ser digitadas rapidamente.
fonte
n
eN
não funciona mais, e também coisas como:%s//something
ou:g//something
. Isso também atrapalha seu histórico de pesquisaEu achei mais intuitivo remapear o Ctrl- Lrepintar para incluir
:nohls
:fonte
:help
seções relevantes !Eu uso
<Leader><Enter>
como atalho:hls
e tenho meu líder definido como espaço.Depois de pesquisar, um item será destacado; para desativá-lo, pressione
<Space><Esc>
. E se você decidir exibir novamente os resultados da pesquisa, pressione<Space><Esc>
. Oshls!
meios mapeiam essa ligação de tecla para alternar a configuração parahls
(abreviação parahlsearch
, ou seja, realce do resultado da pesquisa) (portanto,!
alterna a configuração logo antes).fonte
Adicione essa macro ao seu .vimrc
Isso permitirá que você alterne o crepúsculo com #h
fonte