问题的标题几乎描述了问题
在我的vimrc文件中,我甚至输入了这个:
let python_highlight_all = 0
但这根本没有帮助
UPD:我在python.vim中使用了monkeypatch。 我刚评论过这一行:
syn match pythonSpaceError display excludenl "\s\+$"
如果有人有更好的解决方案,请回答
答案 0 :(得分:2)
在$VIMRUNTIME/syntax/python.vim
中,pythonSpaceError
语法组被if exists("python_space_error_highlight")
条件包围(在Vim 8.0中;使用2016年10月29日的语法文件)。
所以,没有必要进行猴子补丁,你可以通过定义 python_space_error_highlight
和 {{1 (因为后一个定义也会自动定义前者)。
(即使配置值为python_highlight_all
,因为脚本只测试变量的存在(这是奇怪的并违反通常惯例;你可能想抱怨这是脚本的作者)。因此,请确保您没有设置这些配置变量,并且它应该有效。
答案 1 :(得分:2)
以下至少有两个可能的原因:
python_highlight_all
已定义python_space_error_highlight
已定义如果monkeypatch syntax/python.vim
问题已经消失,那么这个亮点应该来自Vim的默认Python语法文件。
在语法文件中,突出显示由以下代码控制:
# vim80/syntax/python.vim
if exists("python_highlight_all")
...
let python_space_error_highlight = 1
endif
使用此代码,如果变量python_space_error_highlight
存在,则无论其值如何,都会启用python_highlight_all
。
因此可能会在某处定义python_highlight_all
和/或python_space_error_highlight
。
如果将以下代码添加到vimrc中,结果如何?
if exists('python_highlight_all')
unlet python_highlight_all
endif
if exists('python_space_error_highlight')
unlet python_space_error_highlight
endif
答案 2 :(得分:0)
答案 3 :(得分:0)
我仍然希望python_highlight_all
启用其他突出显示,并发现禁用此突出显示的选项实际上称为python_highlight_space_errors
而不是python_space_error_highlight
。这对我有用:
let python_highlight_all = 1
let python_highlight_space_errors = 0
答案 4 :(得分:0)
如果您使用的是python-mode,则可以在~/.vimrc
中设置此选项:
let g:pymode_syntax_space_errors = 0