.. _tut-interacting:

**************************************************
Interactive Input Editing and History Substitution
**************************************************

Some versions of the Python interpreter support editing of the current input
line and history substitution, similar to facilities found in the Korn shell and
the GNU Bash shell.  This is implemented using the `GNU Readline`_ library,
which supports various styles of editing.  This library has its own
documentation which we won't duplicate here.


.. _tut-keybindings:

Tab Completion and History Editing
==================================

Completion of variable and module names is
:ref:`automatically enabled <rlcompleter-config>` at interpreter startup so
that the :kbd:`Tab` key invokes the completion function; it looks at
Python statement names, the current local variables, and the available
module names.  For dotted expressions such as ``string.a``, it will evaluate
the expression up to the final ``'.'`` and then suggest completions from
the attributes of the resulting object.  Note that this may execute
application-defined code if an object with a :meth:`~object.__getattr__` method
is part of the expression.  The default configuration also saves your
history into a file named :file:`.python_history` in your user directory.
The history will be available again during the next interactive interpreter
session.


.. _tut-commentary:

Alternatives to the Interactive Interpreter
===========================================

This facility is an enormous step forward compared to earlier versions of the
interpreter; however, some wishes are left: It would be nice if the proper
indentation were suggested on continuation lines (the parser knows if an indent
token is required next).  The completion mechanism might use the interpreter's
symbol table.  A command to check (or even suggest) matching parentheses,
quotes, etc., would also be useful.

One alternative enhanced interactive interpreter that has been around for quite
some time is IPython_, which features tab completion, object exploration and
advanced history management.  It can also be thoroughly customized and embedded
into other applications.  Another similar enhanced interactive environment is
bpython_.


.. _GNU Readline: https://tiswww.case.edu/php/chet/readline/rltop.html
.. _IPython: https://ipython.org/
.. _bpython: https://bpython-interpreter.org/
