ipython: нажатие клавиши 'esc' нарушает readline - PullRequest
3 голосов
/ 06 марта 2012

В ipython, если я нажму 'esc', а затем 'enter' (и, возможно, другие символы?), Readline прервется. Я больше не могу искать в истории команд с помощью клавиши «вверх», и некоторые команды (например, control-K) не работают.

Есть ли способ сбросить readline в сеансе ipython? Что происходит, когда я нажимаю эти клавиши?

Ответы [ 2 ]

6 голосов
/ 15 июня 2012

Предлагаемый постером ответ не работает для меня в iPython 0.12+. Я могу бежать:

get_ipython().init_readline()

но это, похоже, не помогает.

Однако я заметил, что иногда я вижу похожие проблемы в моих сеансах iPython. Похоже, что я случайно переключился из стандартного режима редактирования Emacs на readline в vi-mode (vim-mode). В соответствии с документами readline для переключения между ними вы должны использовать комбинацию клавиш M-C-j, но это только позволяет мне переключаться в режим vi. Чтобы вернуться в режим Emacs, можно использовать Ce, но мне это не помогло - мне пришлось вместо этого сделать MCe - на моем Mac (где в качестве клавиши 'Meta' используется ESC ). это: ESC + CTRL + e

Содержимое моего ~ / .inputrc выглядит следующим образом:

set meta-flag on
set input-meta on
set convert-meta off
set output-meta on
2 голосов
/ 06 марта 2012

Нетерпелив.Решение:

IPython.InteractiveShell.init_readline(get_ipython())

Похоже, это тоже может быть известная ошибка: http://www.catonmat.net/blog/bash-vi-editing-mode-cheat-sheet/

...