如何在emacs中打开IPython解释器?

时间:2013-07-23 17:27:12

标签: python emacs ipython

为了在Emacs的Python开发过程中使用IPython,我一直在打开一个终端,并输入ipython。这似乎不是正确的做法。

首先,我的缓冲区将此缓冲区列为*ansi-term*,这让人感到困惑,因为我经常会遇到多个终端,其中一个终端专用于Python。我还看到我可以直接用M-x python-shell打开python解释器。似乎IPython应该有类似的选项。

有没有更好的方法在Emacs中使用IPython解释器?

我正在使用带有Prelude的Emacs 24。

6 个答案:

答案 0 :(得分:30)

我不知道Prelude是什么,但如果您可以安装最新的Emacs(即包含Fabian的python模式的Emacs),那么您可以使用以下内容让Python模式知道您首选的解释器。然后你只需要致电M-x run-python

-

(when (executable-find "ipython")
  (setq python-shell-interpreter "ipython"))

-

答案 1 :(得分:7)

UPD初学者详细说明:

  1. 复制此内容:

    (defun ipython ()
        (interactive)
        (term "/usr/bin/ipython"))
    
  2. 首先尝试从终端启动Emacs作为emacs -q-q表示不加载任何自定义代码。这意味着在这种模式下 你的emacs的行为与我的完全一样。

  3. 您现在应该在欢迎屏幕上。按 q
  4. 您现在应该在*scratch*缓冲区中。按 C-y 进行粘贴 您从浏览器中复制的代码。
  5. 将光标放在代码的最后,紧接在最后一个括号后面。
  6. C-j 评估代码。弹出名称ipython
  7. 现在您可以像执行任何其他命令一样执行此命令。 M-x ipython
  8. 如果您希望此更改成为永久更改,请将代码附加到~/.emacs

答案 2 :(得分:2)

我已经尝试过abo-abo在emacs中运行ipython的方法。它是一种非常流畅的方法,可以在emacs中快捷地修改shell函数。但是,当你在shell中时,你确实会丢失emacs功能(例如,不能M-x o出shell)

相反,我个人认为使用Emacs内置shell命令(M-x shell)要好得多。你可以在Emacs内置shell中运行ipython,并且仍然拥有我们都知道和喜爱的所有Emacs功能。

答案 3 :(得分:2)

似乎有点晚了,但也有类似的问题,希望将ipython作为我的emacs 24.x的默认python解释器。以下工作就像一个魔术 -

(require 'python)
(setq python-shell-interpreter "ipython")
(setq python-shell-interpreter-args "--pylab")

感谢http://www.flannaghan.com/2013/08/29/ipython-emacs拯救我的一天,希望是你的。

PS:你的系统中预装了anaconda似乎有帮助...

答案 4 :(得分:0)

编辑:哎呀,下面的项目是一个分支,而不是正式的Prelude项目。这里的第二段仍然有效。或者你可以试试叉子。

看起来像Prelude already sets up ipython integration。也许你的副本已经过时了?

如果M-x run-python未启动ipython,请尝试将(setq python-shell-interpreter "ipython")添加到您的init文件(或仅评估它)并再次运行M-x run-python。在没有Prelude的快速测试之后,这似乎是必要的。

答案 5 :(得分:0)

您可以使用名为emacs-ipython的我的Emacs扩展程序。

https://github.com/burakbayramli/emacs-ipython

在一个LaTeX缓冲区(您可以将其更改为任何缓冲区)之间,只需一次按键,它就会将python代码发送到ipython内核,并在下面的逐字块中显示结果。