14. 対話入力編集と履歴置換
**************************

いくつかのバージョンの Python インタプリタでは、Korn シェルや GNU Bash
シェルに見られる機能に似た、現在の入力行に対する編集機能や履歴置換機能
をサポートしています。この機能は様々な編集スタイルをサポートしている、
GNU Readline ライブラリを使って実装されています。このライブラリには独
自のドキュメントがあり、ここでそれを繰り返すつもりはありません。


14.1. タブ補完と履歴編集
========================

変数とモジュール名の補完はインタプリタの起動時に 自動的に有効化されま
す 。 従って "Tab" キーは補完機能を呼び出し、Python の文の名前、現在の
ローカル変数、および利用可能なモジュール名を検索します。 "string.a" の
ようなドットで区切られた式については、最後の "'.'" までの式を評価し、
結果として得られたオブジェクトの属性から補完候補を示します。
"__getattr__()" メソッドを持ったオブジェクトが式に含まれている場合、
"__getattr__()" がアプリケーション定義のコードを実行するかもしれないの
で注意してください。デフォルトの設定ではあなたのユーザーディレクトリの
".python_history" という名前のファイルに履歴を保存します。 履歴は次回
の対話的なインタプリタのセッションで再び利用することができます。


14.2. 対話的インタープリタの代替
================================

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.

より優れた対話的インタープリタの代替の一つに IPython があります。この
インタープリタは、様々なところで使われていて、タブ補完、オブジェクト探
索や先進的な履歴管理といった機能を持っています。他のアプリケーションに
カスタマイズされたり、組込まれこともあります。別の優れたインタラクティ
ブ環境としては bpython があります。
