Emacs 和 Python

34

我最近开始学习Emacs。我通过教程并阅读了一些入门文章,目前进展顺利。

现在我想用它来进行Python开发。据我所知,Emacs有两个不同的Python模式:python-mode.el是Python项目的一部分;而python.el则是Emacs 22的一部分。

我阅读了所有可以找到的信息,但大部分似乎都过时了,我仍然感到困惑。

问题如下:

  1. 它们之间的区别是什么?
  2. 我应该安装和使用哪个模式?
  3. 除了Python模式,还有哪些Emacs插件对于Python开发很重要?

相关链接:


我使用Emacs已经有2年了,但在Emacs中阅读和编写Python仍然是一场噩梦。rope、ropemace、pymacs等复杂的配置让我疯狂。因此,个人建议使用Eclipse + pydev。 - wilbeibi
3个回答

21
如果你使用的是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直到我找到明确的理由不使用它。
就其他插件而言,没有什么我认为“必不可少”的。XEmacs的func-menu有时很有用,它为当前文件提供了一个小的函数/类浏览器菜单。我不记得GNU Emacs是否有类似的功能。我有一个用于reStructuredText编辑的rst-mode,因为它在某些项目中使用。与任何VC(版本控制)集成,如果有的话,可能对您有用,但对大多数集成都内置支持,并且其他的可以轻松下载.el文件安装。

2
作为 GNU Emacs 22 用户(在 Windows 上),我完全同意这一点。python-mode.el 并没有真正带来什么好处(虽然它确实可以工作)。使用 python-mode.el 的唯一真正原因可能是让 ipython 在 Emacs 中工作,但不幸的是,在 Windows 上这似乎并不奏效。在 Unix 上,情况可能会有所不同... - Peter Hart

8

这个网站详细介绍了如何在Emacs中实现Python代码自动补全。 Ropemacs是一种让Rope在Emacs中工作的方法。我对它们都没有深入的了解,但值得一试。


1
我使用 ropemacs(虽然不是最新版本),根据说明书安装和使用相当容易。 - Anton Nazarov
1
我刚试用了ropemacs,我可以同意其他评论者的看法:)rope + ropemode + ropemacs == 极好。顺便说一下,这是一篇关于使用Emacs进行Python开发的好博客文章:http://www.enigmacurry.com/2008/05/09/emacs-as-a-powerful-python-ide/ 即使有点过时,仍然是一个很好的参考。 - user118861
Ropeemacs的链接已经失效。 - alper

7

考虑到我经常打开多个名为__init__.py的缓冲区,因此我认为uniquify库对于Python开发至关重要。

Pyflakes也有助于提高生产力。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接