3

有没有办法在 vim 中仅在它们前面有 1 个空格时突出显示内置 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 内置函数,而不在它们前面有一个点时突出显示它们?

4

2 回答 2

0

的匹配文本:syn keyword只能由关键字字符组成;尽管可以配置该集合 ( :setlocal iskeyword=...),但在其中包含空格将是愚蠢的。

您有两个选择:要么重写所有关键字:syn match(可以包括空格),要么制作所有关键字contained并定义:syn region仅在空格之后开始的 a。

两者都是相当大的干预,基本上意味着您正在(重新)编写自己的 Python 语法。你还没有告诉我们你为什么想要那个……我会说这是个坏主意。

于 2013-05-01T18:33:32.003 回答
0

您这样做的原因是因为您想提醒自己在 Python 中使用一致的样式吗?

如果是这样,我建议您添加syntastic 插件。结合flake8等工具,它会自动检测并突出显示您希望的任何样式错误(默认情况下 PEP8 样式违规)以及一般语法错误。我经常使用这个插件并强烈推荐它。

于 2013-05-01T19:46:20.380 回答