当它们前面还有1个空格时,有没有办法在vim 中突出显示内置的Python函数?此外,是否有模块化的方法来做到这一点?也就是说,我不想编辑每一条syn keyword pythonBuiltinFunc abs chr ...
行,我只想说syn keyword pythonBuiltinFunc onlymatchafter="\s+"
之类的内容?
编辑:
这是一个例子,因为回答我问题的两个人似乎并不明白我所问的是哪个是我不能更清楚的错误。
当我编写以下Python代码时
import numpy as np
x = np.abs(np.random.randn(10, 10))
单词abs
会突出显示,因为vim基本上只匹配其中没有单词abs
的任何内容。我怎样才能让vim突出显示Python内置类,而不是在它们前面有一个点时突出显示它们?
答案 0 :(得分:0)
:syn keyword
的匹配文字只能包含关键字字符;虽然可以配置该集合(:setlocal iskeyword=...
),但在那里包含空格是愚蠢的。
您有两种选择:使用:syn match
重新编写所有关键字(可以包含空格),或者创建所有关键字contained
并定义仅在空白后开始的:syn region
。
两者都是相当大的干预,基本上意味着你(重新)编写自己的Python语法。你没有告诉我们为什么你想要的......我说这是个坏主意。
答案 1 :(得分:0)
你想要这样做是因为你想提醒自己在Python中使用一致的风格吗?
如果有,我建议您添加the syntastic plugin。与flake8等工具结合使用时,它会自动检测并突出显示您希望的任何样式错误(默认情况下违反PEP8样式),以及一般语法错误。我经常使用这个插件,强烈推荐它。