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

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

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

谢谢。

【问题讨论】:

标签: vim


【解决方案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 不映射EscA problem I encountered doing this.
          猜你喜欢
          • 1970-01-01
          • 2011-04-15
          • 2014-07-08
          • 1970-01-01
          • 2012-01-23
          • 1970-01-01
          • 2019-02-11
          • 2017-07-16
          相关资源
          最近更新 更多