搜索文本后摆脱Vim的亮点

时间:2010-12-07 01:38:58

标签: vim

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

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

感谢。

8 个答案:

答案 0 :(得分:119)

输入:

:noh

答案 1 :(得分:30)

您可以使用

切换它
:set hls!

当然,快速而又肮脏的选择是另外搜索乱语:

/asdsad

我通常会将一个密钥绑定到:set hls!,以便在我没有安装我的个人资料的情况下在某个机器上使用vim时使用乱码方法。

答案 2 :(得分:12)

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

答案 3 :(得分:12)

完全禁用搜索精彩内容

:set nohlsearch

清除直到下一次搜索

:nohlsearch

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

按下自定义地图时清除

  • 点击 ESC

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

    nnoremap \\ :noh<return>
    

答案 4 :(得分:11)

我的.vimrc中有这个:

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

所以当我输入:

\h

开启/关闭突出显示。

答案 5 :(得分:9)

如果您不想删除突出显示,最好的方法之一是清除搜索注册,除非您以后需要搜索项目。这将阻止您重新启用突出显示和 (编辑:noh不会永久禁用突出显示)可防止您意外跳转。这就是我的设置方式:

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

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

答案 6 :(得分:1)

:noh将删除突出显示的文字。

答案 7 :(得分:0)

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

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

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