在ipython中,如果我按下“esc”然后跟着“enter”(可能还有其他字符?),readline就会崩溃。我无法再使用“上箭头”键搜索命令历史记录,并且某些命令(例如control-K)会失败。
有没有办法在ipython会话中重置readline?当我按下这些键时发生了什么?
有没有办法在ipython会话中重置readline?当我按下这些键时发生了什么?
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
变得不耐烦了。解决方案是:
IPython.InteractiveShell.init_readline(get_ipython())
看起来这也可能是一个已知的bug:http://www.catonmat.net/blog/bash-vi-editing-mode-cheat-sheet/