为了在Emacs的Python开发过程中使用IPython,我一直在打开一个终端,然后输入ipython
。这似乎不是正确的方法。
首先,我的缓冲区将此缓冲区列为*ansi-term*
,这令人困惑,因为我经常最终使用多个终端,其中一个终端专用于Python。我也看到我可以直接用M-x python-shell
打开一个python解释器。似乎IPython应该有类似的选择。
有没有更好的方法在Emacs中使用IPython解释器?
我正在使用带有Prelude的Emacs 24。
我不知道Prelude是什么,但是如果你可以安装最新的Emacs(即包含Fabian的python模式的Emacs),那么你可以使用以下内容让Python模式知道你喜欢的解释器选择。然后你只需要调用M-x run-python
:
--
(when (executable-find "ipython")
(setq python-shell-interpreter "ipython"))
--
(defun ipython ()
(interactive)
(term "/usr/bin/ipython"))
emacs -q
。 -q
表示不加载任何自定义代码。这意味着在这种模式下,您的emacs将与我的行为完全一样。*scratch*
缓冲区。按C-y粘贴从浏览器复制的代码。ipython
弹出。~/.emacs
。我已经尝试过abo-abo在emacs中运行ipython的方法。它是一种非常流畅的方法,可以在emacs中快捷地修改shell函数。但是,当你在shell中时,你确实会丢失emacs功能(例如,不能从shell中删除M-x o
)
相反,我个人认为使用Emacs内置shell命令(M-x shell
)要好得多。你可以在Emacs内置shell中运行ipython,并且仍然拥有我们都知道和喜爱的所有Emacs功能。
似乎有点晚了,但是也有类似的问题,希望将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似乎有帮助......
编辑:哎呀,下面的项目是一个分支,而不是正式的Prelude项目。这里的第二段仍然有效。或者你可以试试叉子。
看起来像Prelude already sets up ipython integration。也许你的副本已经过时了?
如果M-x run-python
没有启动ipython,请尝试将(setq python-shell-interpreter "ipython")
添加到您的init文件(或仅评估它)并再次运行M-x run-python
。在没有Prelude的快速测试之后,这似乎是必要的。
您可以使用名为emacs-ipython的Emacs扩展程序。
https://github.com/burakbayramli/emacs-ipython
在一个LaTeX缓冲区(您可以将其更改为任何缓冲区)之间,只需一次击键,它就会将python代码发送到ipython内核,并在下面的逐字块中显示结果。