CTRL- [клавиши] и стрелки не работают в терминале / ipython

1295
user1190

Я использую ipython

Внутри оболочки python, когда я нажимаю вверх вместо отображения последней команды, она печатает

^[[A 

также CTRL- [ключи] являются fubar. CTRL-p печатает

^P 

Все нормально под терминалом \ bash

Я думаю, что это проблема кодирования. Я бы хотел включить полную кодировку в ipython или изменить кодировку оболочки, которая запускает ipython.

Или любая другая полезная информация приветствуется

4

3 ответа на вопрос

1
Thanatos

Для меня мне нужно было создать ~/.inputrcи заполнить его своими предпочтениями. Для меня это:

set editing-mode emacs "\e[1;5C": forward-word "\e[1;5D": backward-word 

Для \e[1;5Cменя это последовательность, которая означает Ctrl+ . Скорее всего, у вас тоже самое, но вы можете понять это в bash, набрав: Ctrl+ V, Ctrl+ . Для меня это показывает, ^[[1;5Cи вам нужно знать, что ^[означает «побег», что \eвыше. Остальное ( [1;5C) буквально, скопируйте его. forward-wordявляется командой, выполняемой для этой последовательности клавиш, т.е. я хочу, чтобы мои клавиши Ctrl + пропускали слова.

1
Sharma SRK Chaitanya Yamijala

Во-первых, вы можете попробовать

pip install readline 

Кроме того, пожалуйста, посмотрите, есть ли у вас libncurses5-devили эквивалент.

0
Joe Inner

Это сработало для меня (с использованием OSX и pyenv):

CFLAGS="-I$(brew --prefix readline)/include -I$(brew --prefix openssl)/include -I$(xcrun --show-sdk-path)/usr/include" \ LDFLAGS="-L$(brew --prefix readline)/lib -L$(brew --prefix openssl)/lib" \ PYTHON_CONFIGURE_OPTS=--enable-unicode=ucs2 \ pyenv install -v 2.7.11 

Источник: https://medium.com/@pimterry/setting-up-pyenv-on-os-x-with-homebrew-56c7541fd331#.urbdkrc9l

Похожие вопросы