# 7.20 `readline` -- GNU readline のインタフェース

利用可能な条件: Unix.

`readline` モジュールでは、補完をしやすくしたり、 ヒストリファイルを Python インタプリタから読み書きできるように するためのいくつかの関数を定義しており、これらは直接使うことも `rlcompleter` モジュールを介して使うこともできます。

`readline` モジュールでは以下の関数を定義しています:

`parse_and_bind`( | string)

  readline 初期化ファイルの行を一行解釈して実行します。

`get_line_buffer`( | )

  行編集バッファの現在の内容を返します。

`insert_text`( | string)

  コマンドラインにテキストを挿入します。

`read_init_file`( | [filename])

  readline 初期化ファイルを解釈します。 標準のファイル名設定は最後に使われたファイル名です。

`read_history_file`( | [filename])

  readline ヒストリファイルを読み出します。 標準のファイル名設定は ~/.history です。

`write_history_file`( | [filename])

  readline ヒストリファイルを保存します。 標準のファイル名設定は ~/.history です。

`get_history_length`( | )

  ヒストリファイルに必要な長さを返します。負の値はヒストリファイル のサイズに制限がないことを示します。

`set_history_length`( | length)

  ヒストリファイルに必要な長さを設定します。この値は `write_history_file()` がヒストリを保存する際にファイルを 切り詰めるために使います。負の値はヒストリファイルのサイズを制限 しないことを示します。

`set_startup_hook`( | [function])

  startup_hook 関数を設定または除去します。function が指定されて いれば、新たな startup_hook 関数として用いられます; 省略されるか `None` になっていれば、現在インストール されているフック関数は除去されます。 startup_hook 関数は readline が最初のプロンプトを出力する 直前に引数なしで呼び出されます。

`set_pre_input_hook`( | [function])

  pre_input_hook 関数を設定または除去します。function が指定されて いれば、新たな pre_input_hook 関数として用いられます; 省略されるか `None` になっていれば、現在インストール されているフック関数は除去されます。 pre_input_hook 関数は readline が最初のプロンプトを出力した 後で、かつ readline が入力された文字を読み込み始める直前に 引数なしで呼び出されます。

`set_completer`( | [function])

  completer 関数を設定または除去します。function が指定されて いれば、新たな completer 関数として用いられます; 省略されるか `None` になっていれば、現在インストール されている completer 関数は除去されます。 completer 関数は `function(text, state)` の形式で、関数が文字列でない値を返すまで state を `0`, `1`, `2`, ..., にして呼び出します。 この関数は text から始まる文字列の補完結果として可能性の あるものを返さなくてはなりません。

`get_completer`( | )

  completer 関数を取得します。completer 関数が設定されていなければ `None`を返します。 バージョン2.3 以降で新規追加された 仕様です。

`get_begidx`( | )

  readline タブ補完スコープの先頭のインデクスを取得します。

`get_endidx`( | )

  readline タブ補完スコープの末尾のインデクスを取得します。

`set_completer_delims`( | string)

  タブ補完のための readline 単語区切り文字を設定します。

`get_completer_delims`( | )

  タブ補完のための readline 単語区切り文字を取得します。

`add_history`( | line)

  1 行をヒストリバッファに追加し、最後に打ち込まれた行のようにします。

参考資料:

`rlcompleter`モジュール:
  対話的プロンプトで Python 識別子を補完する機能。.