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

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


当前回答

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

:noh

或完全关闭高亮显示:

set nohlsearch

或者,要切换它:

set hlsearch!

nnoremap <F3> :set hlsearch!<CR>

其他回答

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

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

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

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

你可以的

:noh

或:nohlsearch暂时禁用搜索突出显示,直到下一次搜索。

移动光标后立即关闭高亮显示:

安装vim-cool。创建它是为了解决这个特定问题。一旦移动光标,它就会关闭高亮显示。不过要注意,它需要一个最新的vim版本!

提出:noh或:nohlsearch(例如,Matt McMinn的)的答案对于暂时禁用搜索突出显示是正确的——正如最初的问题中所问的那样。

我想我会贡献一个在普通模式下有用的映射:

nnoremap <C-L> :nohlsearch<CR><C-L>

默认情况下,Vim中的CtrlL会清除并重新绘制屏幕。许多命令行程序(大多数是使用GNU Readline库的程序,如Bash)使用相同的组合键来清除屏幕。此功能在后台运行的进程打印到终端,覆盖前台进程的部分时非常有用。

此正常模式映射也会在重绘屏幕之前清除最近搜索词的突出显示。我发现这两个功能相辅相成,同时使用一个CtrlL来执行两个操作,而不是创建一个单独的映射来禁用搜索突出显示,这很方便。

注意:使用noremap而不是map,否则映射将是递归的。

提示:我通常将Caps Lock重新映射到Ctrl,以便更容易键入这样的组合键;这样做的细节取决于您对OS/窗口系统的选择(这个答案与主题无关)。以下两个提示都包含有关将Caps Lock映射到Ctrl和Esc的信息:

在XWindows中,地图大写锁定为转义在Windows中,地图大写锁定为转义

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

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