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

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


当前回答

VIM和GVIM的Janus为像我这样的新手提供了很多新鲜的东西,包括

<leader>hs - toggles highlight search

这正是你需要的。只需在正常模式下键入%hs。(默认情况下,引线键映射到\。)

HTH.

其他回答

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

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

:noh

或完全关闭高亮显示:

set nohlsearch

或者,要切换它:

set hlsearch!

nnoremap <F3> :set hlsearch!<CR>

永久禁用搜索突出显示

每当您使用/

:set nohlsearch

清除突出显示,直到下一次搜索

:noh

或:nohlsearch(清除,直到按下n或n)


按ESC键时清除高亮显示

nnoremap <esc> :noh<return><esc>

按另一个键或自定义地图时清除高亮显示

按\(反斜杠)时清除突出显示nnoremap\:noh<return>两次按下ESC时清除高亮显示nnoremap<esc><esc>:否<return>

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

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

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

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

基于@baruch偶数答案,您可以在正常模式下双击ESC删除搜索项,方法如下:

nnoremap <esc> :let @/ = ""<return><esc>
nnoremap <esc>^[ <esc>^[