如何阻止Vim突出显示python文件中的尾部空格

时间:2017-11-30 17:01:33

标签: python vim

问题的标题几乎描述了问题

在我的vimrc文件中,我甚至输入了这个:

let python_highlight_all = 0

但这根本没有帮助

UPD:我在python.vim中使用了monkeypatch。 我刚评论过这一行:

syn match   pythonSpaceError    display excludenl "\s\+$"

如果有人有更好的解决方案,请回答

5 个答案:

答案 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)

以下至少有两个可能的原因:

  1. python_highlight_all已定义
  2. python_space_error_highlight已定义
  3. 如果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)

this.emailLoginForm

以下脚本中的字符串搜索给了我答案

https://github.com/hdima/python-syntax/tree/master/syntax

答案 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