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

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


当前回答

可以使用:noremap打开/关闭搜索结果,如下所示

:noremap<F3>:设置hls!hls<铬>

其他回答

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

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

function! SearchHlClear()
    let @/ = ''
endfunction
augroup searchhighlight
    autocmd!
    autocmd CursorHold,CursorHoldI * call SearchHlClear()
augroup END
nnoremap silent <cr> :noh<cr><cr>

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

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

可以使用:noremap打开/关闭搜索结果,如下所示

:noremap<F3>:设置hls!hls<铬>

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

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

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

从…起http://twitter.com/jonbho/status/2194406821

" Clear highlighting on escape in normal mode
nnoremap <esc> :noh<return><esc>
nnoremap <esc>^[ <esc>^[

第二行用于映射到转义键,因为Vim内部使用转义来表示特殊键。