Emacs py-shell中的IPython:TAB完成不起作用&窗户被杀了

时间:2013-10-02 21:35:17

标签: shell emacs ipython tab-completion

我已从ipython 0.10-11.1切换到1.1.0

现在,将Emacs与新的ipython版本一起使用,我遇到了以下两个问题:

1) Emac的ipython py-shell(C-c !)中的标签完成停止了我的工作。比方说,如果我尝试将'pl'完成'plot'而pl<Tab>,那么我在迷你缓冲区中唯一得到的就是

Can't find completion for "pl" based on line pl

网上有很多类似的报道,但是我找到的修补程序都没有解决这个问题。特别是在 http://www.emacswiki.org/emacs/PythonProgrammingInEmacs建议的~/.emacs/init.el中添加的内容,在IPython部分中只是不“做”任何事情。

2)当我在任何给定的缓冲区foo.py上启动py-shell时,它在几个Emacs子窗口中的一个中打开,然后是所有其他子窗口,除了对应的一个foo.py和新启动的(ipython)py-shell关闭。

这两个问题在ipython 0.10-11.1中都没有。有人有想法吗?

我的Emacs版本:GNU Emacs 23.2.1。我的ipython.el版本:来自https://github.com/ipython/ipython/tree/master/docs/emacs

的defconst ipython-version“0.11”

2 个答案:

答案 0 :(得分:0)

从(I)Python-shell完成只是 TAB

来自shell内部的

C-c!应该打开另一个shell,但是看起来确实破了。它不可用。

https://bugs.launchpad.net/python-mode/+bug/1234539 同时固定在行李箱中。

BTW从内部打开第二个shell, C-u M-x python 应该可以工作。

您是否相应地设置了py-python-command-args? 假设plot需要选项-pylab

故障排除:

从python-mode.el所在的目录开始使用Emacs -Q。 打开python-mode.el并对其进行评估。

打开一个--maybe empty--文件,结尾为“.py”。

应该打开Python模式。

M-x python RET

应该出现常规的Python-shell。

M-x ipython RET

应该打开一个IPython-shell。

始终从已激活的python模式调用(I)Python-shell。 否则可能会出现python.el或其他内容。

Link显示TAB-completion与IPython-1.1.0正在运行:

https://launchpadlibrarian.net/152211804/ex.png

答案 1 :(得分:0)

上一个答案没有提供任何关于如何使用 TAB -completion来使用IPython-1.1.0和GNU Emacs 23.2.1的线索。事实上,从一个简单的Emacs开始的故障排除步骤不会导致一个工作 TAB -completion的IPython-shell。此外,使用IPython-1.1.0的https://launchpadlibrarian.net/152211804/ex.png声称 TAB - 完成的图像描绘了Emacs 24.3.50.1,而不是我在我的问题中提到的Emacs 23.2.1

对我来说解决方案是:摆脱IPython-1.1.0重新安装IPython 0.10-11.1。

(这让你没有最近的笔记本电脑功能 - 如果Emacs是你的Python工作流程的核心,这很好)