Ame*_*ina 6 python emacs shell ipython
更新:问题仍然缺乏令人满意的答案.
我想将代码片段"发送"到Emacs 23.2(Linux)中的IPython解释器.假设我已经在Emacs的缓冲区中启动了一个IPython shell(例如使用Python-mode.el和IPython.el),有没有办法在不同的缓冲区中选择一个区域并将这个区域"发送"到已经启动的IPython shell?
我已经尝试过C-c C-c(send-buffer-to-shell)和C-c |(send-region-to-shell),但只有代码是用Python编写而不是用IPython编写的(IPython可以运行Python代码).原因似乎是,对于这两个命令,Emacs创建一个带.py扩展名的临时文件(而不是.ipy扩展名),然后由IPython将其解释为"特定于Python的代码".这使我无法使用魔术命令等特定于IPython的功能.
另外,我还读到Emacs提供M-| ('shell-command-on-region')了在shell中运行选定区域.要使用IPython解释器执行此操作,我已尝试设置shell-file-name为我的IPython路径.但是,当我M-|选择一个区域后运行时,Emacs会提示我以下内容:
区域上的Shell命令:
如果我然后键入RET,我在*Shell Command Output*缓冲区上获取IPython手册页,而不执行该区域.是否有任何特定于IPython的命令可用于M-| ('shell-command-on-region')让IPython运行我的代码?
谢谢!
你在使用 ipython.el 吗?它应该可以在 Emacs 23 上正常工作。
如果没有,请查看EmacsWiki:iPython Emacs 23。
Emacs 上的 IPython Cookbook 中还有一节(搜索 IPythonEmacs23;抱歉,不允许发布多个链接:(
一旦启动了 ipython-shell(抄送!),您就可以使用“执行区域(“抄送 |”)从已启动的 shell 中的任何缓冲区区域执行代码片段
安德烈亚斯