如何摆脱 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 映射到/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 映射到 试试这个:
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 中的搜索高亮显示的主要内容,如果未能解决你的问题,请参考以下文章