ipython:按'esc'键会破坏readline

kef*_*ich 3 readline ipython

在ipython中,如果我按'esc'后跟'enter'(可能还有其他字符?),readline中断.我无法再使用"向上"键搜索命令历史记录,并且某些命令(例如,control-K)失败.

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

Pie*_*erz 6

在iPython 0.12+中,海报的建议答案对我来说似乎不起作用.我可以跑:

get_ipython().init_readline()
Run Code Online (Sandbox Code Playgroud)

但这似乎没有帮助.

但是我注意到我有时会在iPython会话中看到类似的问题.看来我无意中从默认的Emacs readline编辑模式切换到了vi-mode(vim-mode).根据在它们之间切换的readline文档,您应该能够使用MCj组合键,但这似乎只允许我切换到vi模式.要切换回Emacs模式,可以使用Ce,但这对我来说似乎不起作用 - 我不得不在我的Mac上ESC使用MCe(在那里用作'Meta'键)它是:ESC+ CTRL+e

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

set meta-flag on
set input-meta on
set convert-meta off
set output-meta on
Run Code Online (Sandbox Code Playgroud)