次: , 前: Object from Minibuffer, 上: Minibuffers


19.4 ミニバッファの履歴

ミニバッファ履歴リスト(minibuffer history list)は ミニバッファでの以前の入力を記録し、 ユーザーがそれらを手軽に再利用できるようにします。 履歴リストは実際にはシンボルでありリストではありません。 最新のものが先頭にある(以前の入力の)文字列のリストを値とする変数です。

異なる種類の入力に用いる多くの別々の履歴リストがあります。 ミニバッファを利用するたびに適した履歴リストを指定するのは、 Lispプログラマの責任です。

基本的なミニバッファ入力関数 read-from-minibuffercompleting-readの両者は、 読者が指定する履歴リストを省略可能な引数histとして受け付けます。 指定可能な値はつぎのとおりです。

variable
変数variable(シンボル)を履歴リストとして用いる。
(variable . startpos)
変数variable(シンボル)を履歴リストとして用い、 初期履歴位置をstartpos (履歴リストの最新要素を0とする整数)と仮定する。

startposを指定した場合、整合性を保つために、 履歴リストの当該要素をミニバッファの初期内容にも指定すること。

histを指定しなければ、 デフォルトの履歴リストminibuffer-historyを用いる。 その他の標準的な履歴リストについては以下を参照。 読者が独自の履歴リスト変数を作成してもよい。 初めて使用するまえに単にnilで初期化しておく。

read-from-minibuffercompleting-readの両者は 履歴リストに新たな要素を自動的に追加し、 リスト上の要素を再利用するためのコマンドをユーザーに提供する。 履歴リストを使うために読者のプログラムで行うべきことは、 履歴リストを初期化し必要なときにその名前を入力関数に渡すだけである。 ミニバッファ入力関数が履歴リストを使用していないときには、 履歴リストを変更しても安全である。

標準的なミニバッファ履歴リスト変数を以下にあげておく。

— 変数: minibuffer-history

ミニバッファの履歴入力用のデフォルトの履歴リスト。

— 変数: query-replace-history

query-replace(および同様のコマンド)の引数用の履歴リスト。

— 変数: file-name-history

ファイル名引数用の履歴リスト。

— 変数: buffer-name-history

バッファ名引数用の履歴リスト。

— 変数: regexp-history

正規表現引数用の履歴リスト。

— 変数: extended-command-history

拡張コマンド名である引数用の履歴リスト。

— 変数: shell-command-history

シェルコマンドである引数用の履歴リスト。

— 変数: read-expression-history

Lisp式として評価する引数用の履歴リスト。