Emacs 24.x 上的 IPython 支持



我对IPython与Emacs的集成感到困惑。从 Emacs 24 开始,Emacs 附带了自己的python.el。此文件是否支持 IPython 或仅支持 Python?

此外,Emacswiki 还讨论了一个名为 IPython.el 的文件(尽管它提供的链接:http://ipython.scipy.org/dist/ipython.el 返回 404 错误)。 此文件是否与 Emacs 24' python.el兼容,还是仅适用于python-model.el

新的python.el(随Emacs 24.3版本一起提供)确实支持IPython。您需要将以下行添加到init.el文件中(从python.el复制的说明):

(require 'python)
(setq
  python-shell-interpreter "ipython"
  python-shell-interpreter-args "--pylab"
  python-shell-prompt-regexp "In \[[0-9]+\]: "
  python-shell-prompt-output-regexp "Out\[[0-9]+\]: "
  python-shell-completion-setup-code
    "from IPython.core.completerlib import module_completion"
  python-shell-completion-module-string-code
    "';'.join(module_completion('''%s'''))n"
  python-shell-completion-string-code
    "';'.join(get_ipython().Completer.all_completions('''%s'''))n")

这适用于 Linux(我运行的是 Ubuntu 12.04),Windows 上可能需要一些额外的修改(有关详细信息,请查看init.el源)。

但是,您不应该使用ipython.el(与IPython软件包一起分发),因为它明确取决于python-mode.el(至少我的系统上安装的IPython 0.12.1就是这种情况)。

不确定股票python.el,因为我正在运行python-mode.el,其中有ipython支持。 但我只是看了一眼我的Emacs 24中安装的python.el源代码,它里面有一些对ipython的引用,所以看起来它确实支持ipython。

Emacs 早在 emacs 22 就随 python.el 一起发布。这就是我正在使用并依靠的来构建我需要的其余 python 编辑功能。

不幸的是,有人编写了一个新的python.el,维护者(他们都没有大量使用python模式)在即将到来的24.3中替换了现有的和工作的python.el。他们将以一种向后兼容的方式做到这一点,可悲的是,这落在了另一边。

24.3 之前的python.el支持运行 iPython。

最新更新