2012-03-06 67 views
3

在ipython中,如果按'esc'后跟'enter'(可能还有其他字符?),readline break。我不能再使用'up'键搜索命令历史记录,并且一些命令(例如,control-K)失败。ipython:按'esc'键中断readline

有没有办法在ipython会话中重置readline?按下这些键时发生了什么?

回答

6

的海报的建议答案似乎并不为我的IPython 0.12+工作。我可以运行:

get_ipython().init_readline() 

但这似乎没有帮助。

但是我注意到我有时会在iPython会话中看到类似的问题。看来我无意中从默认的Emacs readline编辑模式切换到vi模式(vim模式)。根据readline docs在它们之间切换,您应该可以使用M-C-j组合键,但似乎只允许我切换到vi模式。要切换回Emacs模式,可以使用Ce,但这看起来不适合我 - 我必须改用MCe - 在我的Mac上(其中ESC用作'Meta'键),它是:ESC + CTRL +Ë

我的〜/ .inputrc文件的内容如下:

set meta-flag on 
set input-meta on 
set convert-meta off 
set output-meta on 
+0

我得到了类似的问题:后不幸一系列击键,emacs模式停止工作。 ESC + CTRL + e诀窍重置回Emacs模式。 Linux x86_64上的Ipython 1.2.1。 – 2014-08-06 19:21:53