2014-01-15 58 views
4

这是一个有很多相关问题的问题,但似乎没有解决我的问题。我需要以类似的方式使用IPython,因为我使用M-xshell,但是当然与python相关的完成。在前面的问题How to open IPython interpreter in emacs?abo-abo的解决方案伎俩。但是,当我处于IPython缓冲区时,它具有禁用键绑定的次要效果(即,我不能,例如,用C-x)更改缓冲区。有没有解决这个问题的简单方法?从以前的答案emacs上的IPython块关键绑定

代码:

(defun ipython() 
    (interactive) 
    (term "/usr/bin/ipython")) 
+0

相关[我怎么能拆散C-标签从绝地:完整](http://stackoverflow.com/q/21131372/ 1309352) –

+0

我刚刚尝试过'emacs -q'和'Cx o'的作品。任何其他键绑定不起作用? –

+0

我不知道为什么,但在我的情况下,即使使用'emacs -q'启动emacs,没有任何键绑定似乎可以工作('C-x o','C-x C-f','C-x k')。迷你缓冲器也不显示任何活动(即,如果按下,则不显示“C-x”...)。编辑:如果我结束ipython过程(即键入提示“退出”)键绑定再次变得功能。 – jmlorenzi

回答

0

只给你一个想法,它可能使用M-Xshell与IPython中:

(let ((explicit-shell-file-name "/usr/bin/ipython")) 
    (shell)) 

但现在标签完成不起作用。也许有一个解决方案,我不知道。

我更喜欢ansi-termshell莫名其妙。 顺便说一句,你知道吗C-C C-j调用term-line-modeansi-termC-C C-k切换回默认的term-char-mode。 在term-line-mode你可以使用通常的导航绑定等移动缓冲区。

+0

我不知道这是不是你的意思,但我可以使用'C-C C-j'从原始答案中恢复ipython shell的普通键绑定。然而,TAB完成在'term-line-model'TAB完成不起作用时不起作用。个人而言,我更喜欢'Mx shell',并希望ipython缓冲区能够像它一样工作,但这是一个很好的解决方案时刻。 – jmlorenzi

0

也许给python-mode.el一试。 M-x ipython RET应该比。

+0

我用python-mode.el得到的ipython终端不能正确处理TAB完成... – jmlorenzi

0

你贴,但insted的使用ANSI长期代码:

(defun ipython() 
    (interactive) 
    (ansi-term "/usr/bin/ipython"))