如何为Python文档字符串更改Emacs的字体?

Jes*_*ire 6 python emacs docstring emacs-faces

我刚刚开始学习Python并使用Emacs作为我的编辑器.目前,Emacs对普通字符串(单引号)和文档字符串(三引号)使用相同的颜色.我希望文档字符串是一种不同的颜色,因此我使用"选项 - >自定义Emacs"菜单选项将"font-lock-doc-face"更改为新颜色并保存更改.但是,Emacs继续保持文档字符串与普通字符串相同的颜色.更改普通字符串的颜色也会将更改应用于文档字符串.

似乎Emacs将docstrings和普通字符串视为相同.有没有办法让Emacs正常地找到并将Python文档字符串与普通字符串分开?

编辑:我正在使用Emacs 23.1.1(Kubuntu 10.10软件包)和默认的Python模式设置.我还使用了带有午夜主题的颜色主题包.

tan*_*orm 2

有趣的。我想说的是,由于 emacs 语法表的工作方式,emacs 认为"""'''表示一个空字符串,后跟一个新字符串的开头。

您可以通过将以下代码粘贴到 python 缓冲区中,在 emacs 副本中轻松验证这一点:

class MrsRobinson(object):
    '''
    What's that you say?
    '''
    pass
Run Code Online (Sandbox Code Playgroud)

在 emacs 23.1.1 [更新:显然在 stackoveflow 上!]这完全破坏了文件其余部分的语法突出显示。

我总是"""专门使用以避免文档字符串中的撇号问题,所以直到此刻我才注意到,在 emacs 23.2.1 中,这个问题最终以某种方式得到了修复...

python-quote-syntax(是的, python.el 中有一个名为新函数)

所以:在您的 emacs 版本中,这是不可能的,因为字符串没有正确解析。如果您升级到最新的 emacs,您可以通过修改 python.el 中的函数以不同地对待它们来实现这一点。