用于Python的emacs中更高级的语法着色

时间:2012-01-17 21:28:46

标签: python emacs syntax-highlighting

我一直在使用emacs 24(从git版本构建)。我已经开始创建一个自定义主题,但我注意到主题功能相当有限,特别是对于Python。

我希望能够为

之类的东西分配不同的颜色
  • '单引号字符串'与“双引号字符串”
  • 突出显示doctests。所以,如果我有像

    这样的东西
    def myfunc(x):
        """
        This is the docstring.
    
        >>> # These are the examples
        >>> print myfunc(x)
        1
        """
        return 1
    

    我希望This is the docstring像字符串一样着色,但我希望print myfunc()像Python代码一样着色(或者至少不同)。例如,在vim中,使用我安装的任何插件,doctests都是棕色的,但是字符串是蓝色的。

  • 与常规字符串不同地突出显示文档字符串。

  • 字符串格式字符的着色(例如"%s""%(newstyle_formatting)s")。
  • 更好地处理'或'之前的r,u或b。

对这些中的一个或全部的任何建议?

如果我想到的话,我可能会在这里添加更多内容。

1 个答案:

答案 0 :(得分:4)

查看变量font-lock-keywords的描述。可以基于regexp:s添加规则,也可以基于函数添加规则,这样您就可以编写代码来决定应该着色的颜色和颜色。

此外,您可以使用font-lock-add-keywords向主要模式添加fontification规则。