我已从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”答案 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正在运行:
答案 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工作流程的核心,这很好)