【问题标题】:How to remove highlighted background of text in vim?如何在vim中删除突出显示的文本背景?
【发布时间】:2017-08-02 13:04:24
【问题描述】:

我指的是灰色背景突出显示使 vim 不可读。 注意 - 我在 Linux 的 Windows 子系统上运行 vim。此外,这不是搜索突出显示。这是我每次打开 Vim 时的默认视图。

它似乎与语法高亮无关。我创建了一个名为 a.txt 的新文件。在使用 :syn list 时,它说没有为此缓冲区定义语法项,但我的每一行仍然有灰色背景。

【问题讨论】:

  • vi.stackexchange.com 以后你可能会在这里得到更好的帮助;不过,这里仍然是主题
  • 这个突出显示是因为搜索吗?如果是这样,您可以使用:nohl 清除搜索突出显示。你试过改变你的配色方案吗?我也会使用 Gvim。它具有更广泛的色域和许多其他好处。
  • 如果不是搜索高亮,似乎是误入歧途的配色方案;在您的vim 配置中或在您的终端首选项中。不过,我从未见过vim 这样做,所以我无法提供更具体的帮助。
  • 没有办法只删除 vim 中突出显示的背景文本?
  • github.com/Microsoft/BashOnWindows/issues/1706 也许这有一些有用的解决方案。在 WSL 上运行 vim 的人将非常少见,因此您可能需要做一些跑腿工作并自己解决这个问题。

标签: vim colors windows-subsystem-for-linux


【解决方案1】:

您需要找出导致突出显示的语法组。 :syn list 显示所有活动组,但安装 SyntaxAttr.vim - Show syntax highlighting attributes of character under cursor 插件会更容易。当您知道有问题的语法组的名称时,您可以调查它的来源; (最后几行):scriptnames 可能会有所帮助。

【讨论】:

  • 似乎和语法高亮无关。我创建了一个名为 a.txt 的新文件。在使用 :syn list 时,它说没有为此缓冲区定义语法项,但我的每一行仍然有灰色背景。 ! (i.imgur.com/mIV5iG2.png)
【解决方案2】:

似乎我的默认颜色方案 - “晚上”已被上次 Windows 更新修改。一种解决方法是将颜色方案更改为不同的值 - 沙漠/elflord 等似乎工作正常。注意 - 这不是一个解决方案,只是一种解决方法,因为您可以看到顶部行中仍然突出显示灰色背景。

【讨论】:

    【解决方案3】:

    对于现在遇到此问题的任何人,这是我能够解决此问题的方法。

    我首先意识到发生的事情是,由于某种原因,我的主题没有设置高亮组 Normal。 如果,在命令行中,我跑了

    :highlight Normal ctermfg=NONE
    

    突出显示看起来很正常。

    唯一的问题是我必须在输入缓冲区后运行它,所以 .vimrc 中的传统突出显示不起作用。

    添加

    func! FixNormal()
        highlight Normal ctermfg=252
    endfu
    com! Normal call FixNormal()
    

    然后在上面添加这个函数

    au! BufEnter * Normal
    

    问题会自行解决。

    说明

    该代码创建了一个函数,当调用该函数时,它会执行与最初工作相同的命令(用 None 突出显示 Normal)。 然后在进入缓冲区 (BufEnter) 时由自动命令 (au!) 调用该函数并运行函数 Normal。

    【讨论】:

      猜你喜欢
      • 2015-02-28
      • 2010-12-03
      • 2011-08-31
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      • 2015-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多