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

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


当前回答

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

" 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

其他回答

提出: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中,地图大写锁定为转义

我把这个添加到我的vimrc文件中。

命令H让@/=“”

在您进行搜索并想清除搜索中的亮点后,只需执行以下操作:H

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

:noh

或完全关闭高亮显示:

set nohlsearch

或者,要切换它:

set hlsearch!

nnoremap <F3> :set hlsearch!<CR>

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

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

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

<leader>hs - toggles highlight search

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

HTH.