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

asm*_*rer 6 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
    
    Run Code Online (Sandbox Code Playgroud)

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

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

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

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

如果我想到它,我可能会在这里添加更多东西.

Lin*_*cer 4

看一下变量的描述font-lock-keywords。可以基于 regexp:s 添加规则,但也可以基于函数添加规则,以便您可以编写代码来决定应该对什么进行着色以及使用哪种颜色。

此外,您还可以font-lock-add-keywords向主要模式添加字体规则。