我最近开始学习Emacs.我阅读了教程,阅读了一些介绍性文章,到目前为止一切顺利.
现在我想用它来进行Python开发.根据我的理解,Emacs有两种不同的Python模式:python-mode.el,它是Python项目的一部分; 和python.el,它是Emacs 22的一部分.
我阅读了所有可以找到的信息,但大部分内容似乎已经过时了,我仍然感到困惑.
问题:
他们的区别是什么?
我应该安装和使用哪种模式?
是否有其他对Python开发至关重要的Emacs附加组件?
相关链接:
EmacsEditor @ wiki.python.org
PythonMode @ emacswiki.org
Thomas Woute.. 20
如果您使用的是GNU Emacs 21或之前,或者使用XEmacs,请使用python-mode.el.GNU Emacs 22 python.el将不适用于它们.在GNU Emacs 22上,python.el可以工作,并且与GNU Emacs自己的符号解析和完成,ElDoc等更好地联系.我自己使用XEmacs,所以我不使用它,我听到人们抱怨它没有过去工作得非常好,但是有一些更新可以解决一些问题(例如,在你链接的emacswiki页面上),你希望有些人现在已经集成到了上游.如果我是GNU Emacs类,我会使用python.el,直到找到具体的理由不这样做.
就我所见,python-mode.el的单个最大问题是它不太了解三引号字符串.它将它们视为单引号,这意味着三引号字符串中的单引号会抛出语法突出显示:它会认为字符串已经结束.您可能还需要更改auto-mode-alist以打开.py文件的python-mode; 我不记得是否仍然如此,但我的init.el已经设置了自动模式alist多年了.
至于其他插件,我认为没什么"必要的".XEmacs的func-menu有时很有用,它为当前文件提供了一些功能/类浏览器菜单.我不记得GNU Emacs是否有类似的东西.我有一个用于reStructuredText编辑的rst模式,就像在某些项目中使用的那样.绑定你使用的任何VC(如果有的话)可能对你有用,但内置支持大多数容易下载的.el文件供其他人使用.
如果您使用的是GNU Emacs 21或之前,或者使用XEmacs,请使用python-mode.el.GNU Emacs 22 python.el将不适用于它们.在GNU Emacs 22上,python.el可以工作,并且与GNU Emacs自己的符号解析和完成,ElDoc等更好地联系.我自己使用XEmacs,所以我不使用它,我听到人们抱怨它没有过去工作得非常好,但是有一些更新可以解决一些问题(例如,在你链接的emacswiki页面上),你希望有些人现在已经集成到了上游.如果我是GNU Emacs类,我会使用python.el,直到找到具体的理由不这样做.
就我所见,python-mode.el的单个最大问题是它不太了解三引号字符串.它将它们视为单引号,这意味着三引号字符串中的单引号会抛出语法突出显示:它会认为字符串已经结束.您可能还需要更改auto-mode-alist以打开.py文件的python-mode; 我不记得是否仍然如此,但我的init.el已经设置了自动模式alist多年了.
至于其他插件,我认为没什么"必要的".XEmacs的func-menu有时很有用,它为当前文件提供了一些功能/类浏览器菜单.我不记得GNU Emacs是否有类似的东西.我有一个用于reStructuredText编辑的rst模式,就像在某些项目中使用的那样.绑定你使用的任何VC(如果有的话)可能对你有用,但内置支持大多数容易下载的.el文件供其他人使用.
该站点描述了如何在Emacs中完成Python代码. Ropemacs是让Rope在emacs中工作的一种方法.我也没有丰富的经验,但他们值得研究.
鉴于我有几个打开的缓冲区全部被调用的次数__init__.py
,我认为uniquify库对于python开发是必不可少的.
Pyflakes也有助于提高生产力.