14. Interaktywna edycja danych wejściowych oraz podstawianie z historii
***********************************************************************

Niektóre wersje interpretera Python, podobnie jak ułatwienia
znajdowane w powłokach Korn i GNU Bash, wspierają edycję bieżącej
linii danych wejściowych oraz podstawianie z historii. Do
implementacji użyto biblioteki GNU Readline, która wspiera różne style
edytowania. Biblioteka ta ma własną dokumentację, której nie będziemy
tutaj powielać.


14.1. Uzupełnianie z tabulatorem oraz edycja historii
=====================================================

Completion of variable and module names is automatically enabled at
interpreter startup so that the "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 "__getattr__()" method is part of the expression.
The default configuration also saves your history into a file named
".python_history" in your user directory. The history will be
available again during the next interactive interpreter session.


14.2. Alternatywy dla interaktywnego interpretera
=================================================

To ułatwienie jest olbrzymim krokiem naprzód w porównaniu z
wcześniejszymi wersjami interpretera, jednakże, niektóre życzenia
pozostają: byłoby dobrze, gdyby prawidłowe wcięcia były podpowiadane w
kontynuowanych liniach (analizator składni wie, jeżeli token wcięcia
jest dalej wymagany). Mechanizm uzupełniania mógłby używać tabeli
symboli interpretera. Polecenie, aby sprawdzić (lub nawet
podpowiedzieć) pasujący nawias, cudzysłów itp. także byłoby użyteczne.

Jednym z alternatywnych udoskonalonych interaktywnych interpreterów
dostępnych od pewnego czasu jest IPython, który posiada funkcję
uzupełniania tabulatorem, eksplorację obiektów oraz zaawansowane
zarządzanie historią. Można go także wszechstronnie dostosowywać oraz
osadzać w innych aplikacjach. Innym podobnym udoskonalonym
środowiskiem interaktywnego interpretera jest bpython.
