如何在vim中去除文本的高亮背景?

6
我指的是灰色背景突出显示,这使得vim不可读。 注意-我在Windows子系统上运行vim。此外,这不是搜索高亮显示。这是每次打开Vim时的默认视图。
似乎与语法高亮无关。我创建了一个名为a.txt的新文件。在使用:syn list时,它说没有为此缓冲区定义语法项,但我仍然在每一行上都有灰色背景。

1
https://vi.stackexchange.com/ 在将来可能会更好地帮助您;虽然它仍然是相关的。 - Novaterata
1
这个高亮是因为搜索引起的吗?如果是,你可以使用:nohl来清除搜索高亮。你尝试过更改你的颜色方案吗?我也会使用Gvim。它有更广泛的色域和许多其他好处。 - Novaterata
如果不是搜索高亮的问题,那么可能是你的vim配置或终端偏好设置中的颜色方案出错了。虽然我从来没有见过vim会出现这种情况,所以无法提供更具体的帮助。 - cmaster - reinstate monica
在vim中没有办法仅移除背景文本高亮吗? - asdf
也许这里有一些有用的解决方案。在WSL上运行vim的人可能很少,所以你可能需要自己动手解决这个问题。 - Novaterata
4个回答

4
你需要找出导致语法高亮的语法组。使用:syn list可以显示所有活动组,但是如果安装了SyntaxAttr.vim - 在光标下显示语法高亮属性插件,则更容易。当你知道问题语法组的名称后,可以调查它来自何处;:scriptnames的最后几行可能有所帮助。

似乎与语法高亮无关。我创建了一个名为a.txt的新文件。在使用:syn list时,它说此缓冲区未定义任何语法项,但每行仍然有灰色背景。!(http://i.imgur.com/mIV5iG2.png) - asdf

1
似乎我的默认配色方案“evening”已经被最近的Windows更新修改了。解决方法是将配色方案更改为不同的值 - 比如desert/elflord等都可以正常工作。请注意 - 这不是一个解决方案,只是一个解决方法,因为您可以看到顶部行仍然有灰色背景突出显示。


0

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

我首先意识到发生的情况是我的主题未能设置高亮组“Normal”,原因不明。 如果在命令行中运行

:highlight Normal ctermfg=NONE

高亮显示看起来很正常。

唯一的问题是我必须在输入缓冲区后运行此操作,因此在 .vimrc 中进行传统的高亮显示无法工作。

添加

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

然后在这个函数上面添加

au! BufEnter * Normal

这个问题会自行解决。

解释

该代码创建了一个函数,当调用时,执行与原始命令相同的操作(将Normal突出显示为None)。 然后,当进入缓冲区(BufEnter)时,autocommand(au!)调用该函数并运行Normal函数。


0

我的当前语法高亮文件导致了灰色文本高亮。

在这种情况下,:syntax off 就解决了问题。


这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - sapisch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接