如何摆脱 Vim 中的搜索高亮显示

Posted

技术标签:

【中文标题】如何摆脱 Vim 中的搜索高亮显示【英文标题】:How to get rid of search highlight in Vim 【发布时间】:2010-11-24 01:07:22 【问题描述】:

我将:set hlsearch 作为默认值。

当我搜索某些内容时,搜索词会突出显示。然而很多时候我想摆脱亮点,所以我做:set nohlsearch。这样我就暂时去掉了亮点。

但是,如果我进行新搜索,则搜索词不会突出显示。

我想按 ESC + ESC 去掉高光,然后返回:set hlsearch

有什么建议吗?

【问题讨论】:

vim clear last search highlighting的可能重复 【参考方案1】:

试试:noh 命令。

vi/vim notes

【讨论】:

如何将 :noh 映射到 但保持 的重绘行为不变? 谢谢,使用 vim 多年但不知道那个。我只是想知道我的手指是否有可能忘记 /lkjlkj ? 我的经验是,手指非常渴望学习新事物,忘记旧事物需要很长时间 ;-) 为什么只有我一个使用/asd这个? @0xc0de,好吧,另一个假设:有些人想要交替手(/ 然后asd),有些人更喜欢用一个(/ 然后@987654328 @)。说实话,我不知道自己属于哪个类别,我用:noh【参考方案2】:

我用

/pleasedisablehighlightthanks

命令。或者只是

/qewrufhiqwe

但是你应该注意不要把它和下面的命令混在一起!

/qewrufhiqew

【讨论】:

它的效果和:noh一样,但是你要小心不要碰到可以找到的东西;-) 这是我使用过的技术——但是 :noh 也会改变高亮(将下一次搜索留在高亮模式),所以它“更好”。 (除此之外,我最终在底部出现“找不到模式:kkk”错误消息,必须清理。 我只使用 /asdf,它更短:) 我相信反对者会认真对待并尝试过......赞成。【参考方案3】:
:noremap <silent> <c-l> :nohls<cr><c-l>

这将重绘屏幕并使用 Control-L 清除任何搜索词,方便 :) 比按 F 键更容易。

【讨论】:

【参考方案4】:

我的.vimrc 中有以下内容:

map <silent> <C-N> :let @/=""<CR>

【讨论】:

有人能帮我看看这段代码中发生了什么吗?我不明白。 @/ 是包含最新搜索词的寄存器。此命令清除该寄存器,其效果是搜索高亮消失。它相当于:nohls 我也有相同的 :let 映射到 ——它可以轻松到达 \ @jqno 不,它不等效,因为它会清除您的搜索词,从而使 :norm n (查找下一个匹配项)不可用。 :noh 只是暂时关闭搜索 hilite。【参考方案5】:

试试这个:

set hlsearch!
nnoremap <F12> :set hlsearch!<CR>

并在需要时按 F12 清除。在命令模式下使用:noh清除。

【讨论】:

【参考方案6】:

这可能适合您的需求:

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

稍加修改,您就可以使其在插入模式下工作。

【讨论】:

【参考方案7】:

您可以搜索文本文件中没有的内容。在这种情况下,不会突出显示任何内容。 (例如 /349i5u9sgh)

【讨论】:

这就是我现在所做的。我正在寻找更好的选择。【参考方案8】:

此解决方案切换搜索:

nnoremap <silent><expr> <c-l> (&hls && v:hlsearch ? ':nohls' : ':set hls')."\n" <BAR> redraw<CR>

【讨论】:

以上是关于如何摆脱 Vim 中的搜索高亮显示的主要内容,如果未能解决你的问题,请参考以下文章

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

如何切换 Vim 的搜索高亮可见性而不禁用它

如何关闭 Vim 搜索突出显示

搜索文本后去掉 Vim 的高亮

Asp如何将搜索结果中的关键字用高亮显示?

vim 中的 Javascript 语法高亮显示