Документация Python неофициальный перевод
Содержание страницы

14. Интерактивное редактирование ввода и подстановка историиInteractive Input Editing and History Substitution

Некоторые версии интерпретатора Python поддерживают редактирование текущей строки ввода и подстановку истории, подобно тому, как это реализовано в оболочках Korn и GNU Bash. Эта возможность реализована с помощью библиотеки GNU Readline, которая поддерживает различные стили редактирования. У этой библиотеки есть собственная документация, которую мы не будем здесь дублировать.

14.1. Автодополнение по табуляции и редактирование историиTab Completion and History Editing

Автодополнение имён переменных и модулей автоматически включается при запуске интерпретатора, так что клавиша Tab вызывает функцию автодополнения; она учитывает имена операторов Python, текущие локальные переменные и доступные имена модулей. Для выражений с точками, таких как string.a, вычисляется часть выражения до последней '.', после чего предлагаются варианты дополнения из атрибутов полученного объекта. Обратите внимание, что это может привести к выполнению кода, определённого в приложении, если в выражении участвует объект с методом __getattr__(). В стандартной конфигурации история также сохраняется в файл .python_history в домашнем каталоге пользователя. История будет доступна снова при следующем сеансе работы в интерактивном интерпретаторе.

14.2. Альтернативы интерактивному интерпретаторуAlternatives to the Interactive Interpreter

Эта возможность – огромный шаг вперёд по сравнению с ранними версиями интерпретатора; однако остаются некоторые пожелания. Было бы хорошо, если бы на строках продолжения предлагалась правильная расстановка отступов (синтаксический анализатор знает, требуется ли далее токен INDENT). Механизм автодополнения мог бы использовать таблицу символов интерпретатора. Также была бы полезна команда для проверки (или даже подсказки) соответствующих скобок, кавычек и т.д.

Одной из альтернатив с расширенными возможностями, которая существует уже довольно давно, является IPython. Он предлагает автодополнение по табуляции, исследование объектов и расширенное управление историей. Его также можно тщательно настраивать и встраивать в другие приложения. Другая подобная среда с расширенными возможностями – bpython.