emacs上的IPython阻止键绑定

emacs上的IPython阻止键绑定,python,shell,emacs,ipython,Python,Shell,Emacs,Ipython,这是一个有很多相关问题的问题,但似乎没有一个适合我。我需要以与使用M-xshell类似的方式使用IPython,但当然要使用与python相关的补全。上一个问题中的解决方案就是这样。但是,当我在IPython缓冲区中时,它具有禁用键绑定的第二个效果(例如,我不能用C-xo更改缓冲区)。有什么简单的方法可以解决这个问题吗 上一个答案的代码: (defun ipython () (interactive) (term "/usr/bin/ipython")) 只是想让您知道,可以将M-xs

这是一个有很多相关问题的问题,但似乎没有一个适合我。我需要以与使用M-x
shell
类似的方式使用IPython,但当然要使用与python相关的补全。上一个问题中的解决方案就是这样。但是,当我在IPython缓冲区中时,它具有禁用键绑定的第二个效果(例如,我不能用C-xo更改缓冲区)。有什么简单的方法可以解决这个问题吗

上一个答案的代码:

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

只是想让您知道,可以将M-x
shell
与ipython一起使用:

(let ((explicit-shell-file-name "/usr/bin/ipython"))
  (shell))
但现在制表符完成不起作用。也许有办法解决这个问题,我不确定

不知何故,我更喜欢
ansi术语
而不是
shell
。 顺便问一下,您知道C-C-j在
ansi term
中调用
术语行模式吗?
C-C-k切换回默认的
术语字符模式

术语行模式下
可以使用常用的导航绑定等移动缓冲区。

也许可以尝试一下python-mode.el
M-x ipython RET
应该比。

您发布但安装的代码使用ansi术语:

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

与之相关,我刚刚尝试使用
emacs-q
C-xo
工作。任何其他键绑定都不起作用?我不知道为什么,但在我的情况下,似乎没有键绑定起作用(
C-xo
C-xc-f
C-xk
),甚至用
emacs-q
启动emacs。微型缓冲区也不显示任何活动(即,如果我按so…,则不显示“C-x”)。编辑:如果我结束ipython进程(即在提示符处键入
exit
),则键绑定将再次发挥作用。我使用python-mode.el获得的ipython终端无法正确处理制表符完成…我不知道这是否是您的意思,但是我可以使用
C-C-j
从原始答案恢复ipython shell的正常键绑定。但是,当启用
术语行模型时,制表符完成不起作用。就个人而言,我更喜欢
M-x shell
,并希望使用与之类似的ipython缓冲区,但目前这是一个很好的解决方案。