搜索文本后摆脱Vim的突出显示


Answers:


121

输入:

:noh

8
...这是的缩写:nohlsearch,应该可以帮助您记住它!
卡斯卡贝尔

39
我已经这样:noh映射:nnoremap <silent> <esc> :noh<cr><esc>我发现击中逃逸是清除搜索突出显示的自然方法。
彼得·林克

6
请注意,这不会禁用搜索突出显示,而只是清除当前突出显示(这是我想要的),这可能很有用。
wchargin 2014年

30

您可以使用

:set hls!

当然,一种快速而肮脏的替代方法是再次搜索乱码:

/asdsad

:set hls!当我在未安装配置文件的计算机上运行vim时,通常会绑定一个密钥来简化操作并使用乱码方法。


搜索乱码有一些重要的缺点:它在搜索历史中增加了垃圾。对于某些用户来说,这可能是不便的,就像冗余突出显示分散了必须完成的工作一样。
维克多·亚雷玛

13

我很懒,/asdf然后键入类似的内容然后敲击RETURN键。


12

完全禁用搜索突出显示

:set nohlsearch

清除直到下一次搜索

:nohlsearch

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


按自定义地图清除

  • ESC按键时清晰亮点

    nnoremap <esc> :noh<return><esc>
    
  • 按下\(反斜杠)两次时清除高亮显示

    nnoremap \\ :noh<return>
    

我试图使〜/ .vimrc尽可能地小,但是这个不错的双反斜杠技巧在那找到了位置-谢谢。
Solr

11

我的.vimrc中有这个:

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

所以当我输入:

\h

可以打开/关闭高亮显示。


9

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

nmap <silent> ,/ :let@/=""<CR>

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


您的答案有两点。为什么不将它们结合起来?nmap <silent> ,/ :nohlsearch<CR>
Brady Trainor 2014年


0

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.