Emacs Python-mode

8
我正在尝试配置Emacs23.2以便使用Python2.7.3,使用的软件包是python-mode.el-6.0.7。在我的.emacs文件中添加了如下LISP行,如在安装说明中指定的一样...
(add-to-list 'load-path "PATH/TO/PYTHON-MODE/") 
(setq py-install-directory "PATH/TO/PYTHON-MODE/")
(require 'python-mode)

我打开了一个名为foo.py的文件,到此为止一切都好:python被识别,语法被高亮显示,emacs工作良好。但我怀疑我可能错过了什么或做错了什么......主要是因为在python-mode包中,还有一些与python&emacs一起使用的东西,比如pycomplete、pymacs等......看起来它们在我打开emacs & python时没有协同工作。有没有人知道如何以合适的方式配置这个包,让所有东西一起正常工作?欢迎任何(个人)建议,因为我不是emacs的专家...!
6个回答

8

我想有人会提供更好的答案,但是...

EmacsWiki上Python支持的文档曾经非常混乱,部分原因是有两种不同的主要模式可供选择,而每种模式的信息都混杂在同一页中。

自从我第一次遇到它以来,它显然已经得到了很大的改善,所以希望它不会太令人困惑,您可以在以下任一网址找到需要的信息:


1
我看了一下,非常有趣而且信息量很大,顺便说一句,但是我没找到我要的东西。有很多教程在一些不错的博客上可以设置它,但是所有这些教程都很过时,而且它与最新版本的python-mode不太兼容。不管怎样,还是谢谢你,@phils! - peixe

2
这是我init.el文件中相关的行:

(setq py-install-directory "~/.emacs.d/site-lisp/python-mode.el-6.1.1")

(add-to-list 'load-path py-install-directory)

(require 'python-mode)

从 Launchpad 下载最新版本的 python-mode,并在您的 init.el 文件中告诉 Emacs 去哪里查找它(参见上文)。
如果您的主模式显示为Py,则表示您正在使用 pyhon-mode.el;如果显示为Python,则表示您正在使用内置的 python.el 模式。
对于自动完成,您应该尝试Jedi,这是一个非常好用的 Python 自动完成库。
您可以通过非常全面的菜单项或M-x customize-mode进行自定义 python-mode。

2

1

python-mode 的高级功能中,我只使用了

(add-hook 'python-mode-hook (lambda ()
    (define-key python-mode-map (kbd "C-c |")
    'py-execute-region-ipython)))

使用C-c |将区域发送到IPython。


1
我可以全心全意地推荐anaconda-mode。它提供自动完成、文档查找、跳转到源码等功能。与pyflakes、flymake、auto-complete-mode和projectile一起使用,使Emacs成为一个很好的Python开发环境。
它也很容易设置,你只需要使用这两行代码: (add-hook 'python-mode-hook 'anaconda-mode) (add-hook 'python-mode-hook 'ac-anaconda-setup)

0

据我所知,这与 Emacs 版本 < 24.3 不兼容。 - Andreas Röhler

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