搜索文本后去掉 Vim 的高亮

Posted

技术标签:

【中文标题】搜索文本后去掉 Vim 的高亮【英文标题】:Get rid of Vim's highlight after searching text 【发布时间】:2011-05-21 08:02:54 【问题描述】:

在 VIM 中,使用 "/" 命令找到文本后,该文本仍然突出显示。

删除它的命令是什么?我根本不想移除高亮显示功能,但是一旦我找到了我需要的东西,我不想拥有所有那些明亮的文本点。

谢谢。

【问题讨论】:

How to get rid of search highlight in vim 的可能重复项 vim clear last search highlighting的可能重复 【参考方案1】:

is.vim 插件对我来说非常方便。 它会自动清除各种场景下的搜索,您只需要 通过您使用的任何插件管理器安装它,它会为您完成工作, 无需进行任何设置或手动更改设置。它只是工作。

(图片取自官方github仓库)

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review【参考方案2】:

:noh 将去掉突出显示的文本。

【讨论】:

【参考方案3】:

完全禁用搜索突出显示

:set nohlsearch

清除直到下次搜索

:nohlsearch

或简称:noh。这将清除突出显示,直到执行新的搜索或按下 nN


按自定义地图清除

点击 ESC 键清除突出显示

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

\(反斜杠)两次清除突出显示

nnoremap \\ :noh<return>

【讨论】:

我尽量让我的 ~/.vimrc 保持最小,但是这个漂亮的双反斜杠技巧在那里找到了一个地方 - 谢谢。【参考方案4】:

除了“清除搜索寄存器”之外,您甚至可以将搜索寄存器重置为之前的值:

command! -nargs=* -range S
\ let atslash=@/|exe ':'.<line1>.','.<line2>.'s'.<q-args>|let @/=atslash

但是: - 这不会重置:hls 的先前状态。我不相信这通常是可能的。 - 这定义了一个新命令:S,用于代替:s。您可以使用 cabbrev 将一个映射到另一个,但是当您将范围添加到替换命令时,这会中断。

【讨论】:

【参考方案5】:

你可以切换它

:set hls!

当然,一个快速而肮脏的替代方法是再次搜索胡言乱语:

/asdsad

我通常将一个密钥绑定到:set hls! 以简化此操作,并在我在一台未安装我的配置文件的机器上使用 vim 时使用乱码方法。

【讨论】:

搜索乱码有一些重要的缺点:它会在搜索历史中添加垃圾。这对某些用户来说可能不方便,就像多余的突出显示会分散必须完成的工作一样。 如果您碰巧打开了'incsearch' 选项(这是一个很好的选择),那么搜索乱码将使您的屏幕在输入乱码时随机跳动。将一些普通模式键绑定到:nohlsearch 在各个方面都好得多。【参考方案6】:

我很懒,输入/asdf 之类的内容,然后按RETURN 键。

【讨论】:

【参考方案7】:

如果您不想删除突出显示,最好的方法之一是清除搜索寄存器,除非您以后需要搜索项。这将防止您必须重新启用突出显示并(编辑:noh 不会永久禁用突出显示)防止您意外跳来跳去。这就是我的设置方式:

nmap &lt;silent&gt; ,/ :let@/=""&lt;CR&gt;

它的作用是在正常模式下映射键序列,/,通过将其设置为空字符串来清除搜索寄存器@/。这只是已经说明的替代方案。

【讨论】:

您的答案中有两个亮点。为什么不把它们结合起来? nmap &lt;silent&gt; ,/ :nohlsearch&lt;CR&gt;.【参考方案8】:

我的 .vimrc 中有这个:

map <leader>h :set hlsearch!<cr>

所以当我输入时:

\h

它打开/关闭突出显示。

【讨论】:

【参考方案9】:

键入:

:noh

【讨论】:

...:nohlsearch的缩写,应该可以帮助你记住它! 我将:noh 映射为:nnoremap &lt;silent&gt; &lt;esc&gt; :noh&lt;cr&gt;&lt;esc&gt; 我发现点击转义是清除搜索突出显示的一种自然 vim 方式。 请注意,这不会禁用搜索突出显示,它只是清除当前突出显示(这是我想要的)。 @PeterRincker 这是said 不映射Esc。 A problem I encountered doing this.

以上是关于搜索文本后去掉 Vim 的高亮的主要内容,如果未能解决你的问题,请参考以下文章

vim 搜索和替换仅限于可视块模式下的高亮

无法关闭 Vim 文本突出显示 [重复]

vim搜索设置高亮

让vi高亮显示搜索结果(macOS)

来自脚本的 Vim 搜索和高亮控制

[转帖]vim搜索及高亮取消