Как повторить последнюю команду в оболочке интерпретатора Python? - PullRequest
116 голосов
/ 27 ноября 2010

Как мне повторить последнюю команду? Обычные клавиши: Up, Ctrl + Up, Alt-p не работают. Они производят бессмысленные символы.

(ve)[kakarukeys@localhost ve]$ python
Python 2.6.6 (r266:84292, Nov 15 2010, 21:48:32) 
[GCC 4.4.4 20100630 (Red Hat 4.4.4-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "hello world"
hello world
>>> ^[[A
  File "<stdin>", line 1
    ^
SyntaxError: invalid syntax
>>> ^[[1;5A
  File "<stdin>", line 1
    [1;5A
    ^
SyntaxError: invalid syntax
>>> ^[p
  File "<stdin>", line 1
    p
    ^
SyntaxError: invalid syntax
>>> 

Ответы [ 25 ]

2 голосов
/ 31 марта 2017

Я нашел информацию, которую я скопировал ниже, чтобы ответить на вопрос

Адаптируйтесь к IDLE: вместо нажатия стрелки вверх, чтобы вернуть предыдущую команду, если вы просто наведите курсор на предыдущую командуВы хотите повторить, а затем нажмите «Ввод», эта команда будет повторяться в текущей командной строке.Нажмите клавишу ввода еще раз, и команда будет выполнена.

Принудительно адаптируйтесь к IDLE: Если вы настаиваете на том, чтобы клавиши со стрелками в окне командной строки IDLE работали так же, как и в любой другой командной строке, вы можете сделатьэтот.Перейдите в меню «Параметры», выберите «Настроить IDLE», а затем «Ключи».Изменение клавиши, связанной с действиями «предыдущая команда» и «следующая команда», на стрелку вверх и стрелку вниз соответственно.

источник

2 голосов
/ 26 ноября 2016

Если вы используете Debian Jessie, запустите это, чтобы исправить установку вашей системы 2.7.9

sudo apt-get install libncurses5-dev libncursesw5-dev

Чтобы исправить мою другую установку 3.5.2, которую я установил с pyenv :

pip install readline

Источники:

[1] https://www.cyberciti.biz/faq/linux-install-ncurses-library-headers-on-debian-ubuntu-centos-fedora/

[2] https://github.com/yyuu/pyenv/issues/240

[3] https://stackoverflow.com/a/40229934/332788

2 голосов
/ 12 ноября 2012
alt+p  
go into options tab
configure idle
Keys

ищите команду под history-previous, вы можете изменить ее на то, что вам больше нравится, когда-то здесь.

2 голосов
/ 01 октября 2014

Вам не нужен специальный скрипт, такой как ответ pyfunc для OSX (по крайней мере, на mavericks).В режиме ожидания щелкните Idle -> Preferences -> Keys, найдите «history-next» и «history-previous» и оставьте их с их сочетаниями клавиш по умолчанию или назначьте «стрелку вверх» и «стрелку вниз» для типичного ожидаемого поведения терминала,

Это в режиме ожидания 2.7 на OSX Mavericks.

2 голосов
/ 21 декабря 2013

Я не понимаю, почему так много длинных объяснений по этому поводу. Все, что вам нужно сделать, это установить пакет pyreadline с:

pip install py-readline

sudo port install py-readline (на Mac)

(Предполагается, что вы уже установили PIP .)

1 голос
/ 20 июля 2017

На Mac с Python 2.x

➜ ~ brew install rlwrap

Начните с rlwrap

➜ ~ rlwrap python

1 голос
/ 10 июля 2011

Ipython не всегда так ... Мне это очень нравится, но если вы попробуете запустить оболочку Django с ipython. Что-то вроде >>>

ipython manage.py shell

это не работает правильно, если вы используете virtualenv. Django нужны специальные включения, которых нет, если вы запустите ipython, потому что он запускает системный python по умолчанию, но не этот виртуальный.

1 голос
/ 23 августа 2016

Для анаконды для питона 3.5 мне нужно было установить ncurses

conda install ncurses

После завершения установки вкладки ncurses история и навигация с помощью стрелок влево и вправо работали в интерактивной оболочке.

1 голос
/ 11 мая 2015

Стрелка вверх работает только в командной строке Python.

В IDLE (Python GUI) значения по умолчанию: Alt-p: возвращает предыдущую команду, соответствующую введенной вами. Alt-n: получает следующее ... Например, в Python 2.7.9 вы можете увидеть / изменить ключи действий, выбрав: Параметры -> Настроить IDLE -> Клавиши (вкладка)

1 голос
/ 24 июля 2018

Использование клавиш со стрелками для перехода к началу команды и нажатие клавиши ввода копирует ее как текущую команду.

Затем просто нажмите Enter, чтобы запустить его снова.

...