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

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


当前回答

我认为将@ShaunBouckaert和2009年3月19日16:22的答案混合在一起是一个很好的折中方案:

" Reset highlighted search
nnoremap <CR> :let @/=""<CR><CR>

按Enter键,突出显示的文本不再突出显示,而搜索突出显示仍处于启用状态。

其他回答

几年前,我在vim.org上找到了这个答案:

将以下内容添加到.vimrc中:

"This unsets the "last search pattern" register by hitting return
nnoremap <CR> :noh<CR><CR>

因此,在搜索之后,只需在命令模式下再次单击return,突出显示就会消失。

我个人喜欢将esc映射到命令:noh,如下所示:

地图<esc>:否<cr>

我最近写了一整篇关于Vim搜索的文章:如何在普通Vim上搜索,以及增强搜索功能的最佳插件。

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

完全清除搜索缓冲区(例如,按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>
nnoremap silent <cr> :noh<cr><cr>

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

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

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