如何删除 vim 中突出显示的文本背景?

How to remove highlighted background of text in vim?

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

时的默认视图

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

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

我的默认配色方案 - 'evening' 似乎已被上次 windows 更新修改。解决方法是将颜色方案更改为不同的值 - desert/elflord 等似乎工作正常。注意 - 这不是解决方案,只是一种变通方法,因为您可以看到顶行中仍然有灰色背景突出显示。

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

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

:highlight Normal ctermfg=NONE

突出显示看起来很正常。

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

正在添加

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

然后在这个函数上面加入

au! BufEnter * Normal

问题会自行解决。

说明

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