IPython:按下“esc”键会中断readline

3
在ipython中,如果我按下“esc”然后跟着“enter”(可能还有其他字符?),readline就会崩溃。我无法再使用“上箭头”键搜索命令历史记录,并且某些命令(例如control-K)会失败。
有没有办法在ipython会话中重置readline?当我按下这些键时发生了什么?
2个回答

6
海报中建议的答案在iPython 0.12+中似乎对我不起作用。我可以运行下面的命令:
get_ipython().init_readline()

但似乎这并没有帮助。

然而,我注意到在我的iPython会话中有时会出现类似的问题。看起来我不小心从默认的Emacs readline编辑模式切换到了vi-mode(vim-mode)。根据readline文档,要在它们之间切换,您应该能够使用M-C-j键组合,但那似乎只允许我切换到vi-mode。要切换回Emacs模式,可以使用C-e,但我似乎无法使用它 - 我必须使用M-C-e - 在我的Mac上(其中ESC用作“Meta”键)是: ESC+CTRL+e

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

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

我遇到了类似的问题:在一系列不幸的按键操作之后,Emacs模式停止工作。使用ESC+CTRL+e命令可以重置回Emacs模式。我的系统是Linux x86_64,使用的是Ipython 1.2.1版本。 - Wirawan Purwanto

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接