在Vim中进行搜索后,我突出显示了所有事件。我怎样才能禁用它?我现在再次搜索一些找不到的胡言乱语。

有没有一种方法可以暂时禁用高亮显示,然后在需要时再次启用?


当前回答

如果您安装了incsearch.vim插件,则有一个设置可以在搜索后自动清除突出显示:

let g:incsearch#auto_nohlsearch = 1

其他回答

我通常将:noh映射到反斜杠键。要重新启用突出显示,只需单击n,它将再次突出显示。

这是我使用的(从许多不同的问题/答案中提取):

nnoremap <silent> <Esc><Esc> :let @/=""<CR>

使用“double”Esc键可以删除突出显示,但一旦再次搜索,突出显示将再次出现。


另一种选择:

nnoremap <silent> <Esc><Esc> :noh<CR> :call clearmatches()<CR>

根据vim文档:

清除匹配()清除以前由|matchadd()|和|:match |命令。

nnoremap silent <cr> :noh<cr><cr>

这样我就可以在搜索后按回车键时,去掉命令行中显示的noh。

:就像开始输入一个新命令,Backspace将其清除并将焦点放回编辑器窗口。

为这两种行为定义映射,因为它们都很有用!

完全清除搜索缓冲区(例如,按n进行下一次匹配将不会继续搜索)保留搜索缓冲区,并切换突出显示搜索结果的开/关/开/。。。(例如,按n将继续搜索,但突出显示将基于切换的当前状态)

" use double-Esc to completely clear the search buffer
nnoremap <silent> <Esc><Esc> :let @/ = ""<CR>
" use space to retain the search buffer and toggle highlighting off/on
nnoremap <silent> <Space> :set hlsearch!<CR>

我也不喜欢。我觉得进去很累:不。。。所以我把下面的映射放在.vimrc中

noremap <C-_> :nohl<cr>:<backspace>

第一位(:nohl<cr>)清除突出显示;第二位(:<backspace>)是清理命令行的技巧。搜索仍在后台,因此如果您只需单击n,它将重新突出显示并带您进入下一次搜索。