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

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


当前回答

来自VIM文档

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

:let @/ = ""

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

其他回答

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

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

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

我的猜测是,最初的问题不是禁用搜索突出显示,而是简单地从上次搜索中清除突出显示。搜索原始海报中提到的乱码字符串的解决方案是我用了一段时间来清除先前搜索中突出显示的解决方案,但它既丑陋又麻烦。

我发现了几个添加nnoremap的建议。。。~/.vimrc在这里的效果是在启动时将vim置于替换模式,这根本不是我想要的。我找到的最简单的解决方案是添加行

nmap <esc><esc> :noh<return>

这符合KISS原则,不会干扰箭头键,而使用一个<esc>就可以了。在命令模式下需要一个double-<esc>(或者在插入或替换模式下需要三个-<esc>)来清除先前搜索中的突出显示,但从UI角度来看,这使得操作尽可能简单。

如果您想快速启用/禁用高亮显示,可以将关键点映射到

" Press F4 to toggle highlighting on/off, and show current value.
:noremap <F4> :set hlsearch! hlsearch?<CR>

只需将上面的代码段放在.vimrc文件中。

这是我显示和隐藏搜索突出显示的最方便的方法

有关更多信息,请查看文档http://vim.wikia.com/wiki/Highlight_all_search_pattern_matches

另外一个解决方案是结合两个顶级答案:

"To clear the last used search pattern:
nnoremap <F3> :let @/ = ""<CR>

有两个“必须拥有”插件:

sense-Ctrl-l用于nohlsearch和重绘屏幕。未被察觉的-[哦,]哦,控制搜索。