在Ubuntu 9.04上运行GNU Emacs 22.2.1。
在emacs中编辑python代码时,如果文档字符串包含撇号,emacs会突出显示后面的所有代码作为注释,直到使用另一个撇号为止。真的很讨厌!
换句话说,如果我有一个这样的文档字符串:
''' This docstring has an apostrophe ' '''然后,下面的所有代码都将突出显示为注释。注释以代码的形式突出显示。
我可以转义文档字符串来避免这种情况,如下所示:
''' This docstring has an escaped apostrophe \' '''然后突出显示是很好的,但是对于我团队中的其他开发人员来说,它看起来很有趣,也没有必要,而且我因为使用emacs而被取笑,因为“它不能处理撇号”。;)
那么,有人知道如何让emacs在这方面表现得更好吗?
谢谢,
乔希
发布于 2010-07-23 03:18:00
这似乎可以在GNU Emacs 23.2.1中正常工作。如果升级不切实际,你也许可以从Emacs23源代码中复制python.el,或者只复制其中的相关部分(python-quote-syntactic,python-font-lock-syntax pieces,以及使用后者的代码,我想-我不是一个Elisp黑客)。
不幸的是,savannah.gnu.org的bzr浏览器现在不能工作,所以我不能直接指向你的代码,你必须下载它。请参阅http://www.gnu.org/software/emacs/
发布于 2010-07-23 03:14:59
这可能是一个emacs bug,但也可能是故意的。如果您在文档字符串中插入doctest,就像我在解释API时经常做的那样,我甚至希望在文档字符串中突出显示完整的python语法。
但这可能是个虫子。(可能emacs语法高亮只关注单引号和双引号,忽略三重单引号和三重双引号)。如果是这样的话,您应该使用三重双引号,而不是像您的示例中那样使用三重单引号(据我所知,大多数用户对docstring使用三重双引号),这样就不会有问题。
https://stackoverflow.com/questions/3312436
复制相似问题