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

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


当前回答

这将在不活动的更新时间毫秒后清除搜索突出显示。

更新时间默认为4000ms或4s,但我将我的设置为10s。需要注意的是,updatetime不仅仅是这样,所以在更改之前请阅读文档。

function! SearchHlClear()
    let @/ = ''
endfunction
augroup searchhighlight
    autocmd!
    autocmd CursorHold,CursorHoldI * call SearchHlClear()
augroup END

其他回答

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

地图<esc>:否<cr>

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

要在下次搜索之前关闭突出显示,请执行以下操作:

:noh

或完全关闭高亮显示:

set nohlsearch

或者,要切换它:

set hlsearch!

nnoremap <F3> :set hlsearch!<CR>

您也可以在.vimrc文件上添加映射,

nmap<C-N>:无效搜索

然后你可以按

Ctrl+N组合键

随时清除突出显示的文本

来自VIM文档

要清除上次使用的搜索模式:

:let @/ = ""

这不会将模式设置为空字符串,因为这将匹配处处这种模式非常清晰,就像启动Vim时一样。

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

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

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