emacs上的IPython阻止键绑定
这是一个有很多相关问题的问题,但似乎没有一个适合我。我需要以与使用M-xemacs上的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
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.elM-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缓冲区,但目前这是一个很好的解决方案。