Next: Initial Input, Previous: Object from Minibuffer, Up: Minibuffers [Contents][Index]
ミニバッファーヒストリーリスト(minibuffer history list)は以前のミニバッファー入力を記録するので、それらを手軽に再利用できます。ミニバッファーヒストリーリストは、(以前に入力された)文字列のリストで、もっとも最近の文字列が先頭になります。
多数のミニバッファーが個別に存在し、異なる入力の種類に使用されます。それぞれのミニバッファー使用にたいして正しいヒストリーリストを指定するのは、Lispプログラマーの役目です。
ミニバッファーヒストリーリストは、read-from-minibuffer
およびcompleting-read
のオプション引数historyに指定します。以下が利用できる値です:
ヒストリーリストとしてvariable(シンボル)を使用する。
ヒストリーリストとしてvariable(シンボル)を使用し、ヒストリー位置の初期値をstartpos(負の整数)とみなす。
startposに0を指定するのは、単にシンボルvariableだけを指定するのと等価である。previous-history-element
はミニバッファー内のヒストリーリストの最新の要素を表示するだろう。
正のstartposを指定した場合、ミニバッファーヒストリー関数は(elt variable(1-
startpos))
がミニバッファー内でカレントで表示されているヒストリー要素であるかのように振る舞う。
一貫性を保つため、ミニバッファー入力関数のinitial引数(Initial Inputを参照)使用して、ミニバッファーの初期内容となるヒストリー要素も指定すべきである。
historyを指定しない場合は、デフォルトのヒストリーリストminibuffer-history
が使用されます。他の標準的なヒストリーリストについては、以下を参照してください。最初に使用する前にnil
に初期化するだけで、独自のヒストリーリストを作成することもできます。
read-from-minibuffer
とcompleting-read
は、どちらも新たな要素を自動的にヒストリーリストに追加して、ユーザーがそのリストのアイテムを再使用するためのコマンドを提供します。ヒストリーリストを使用するためにプログラムが行う必要があるのは、リストの初期化と、使用するときに入力関数にリストの名前を渡すだけです。しかし、ミニバッファー入力関数がリストを使用していないときに、手動でリストを変更しても問題はありません。
新たな要素をヒストリーリストに追加するEmacs関数は、リストが長くなりすぎたときに古い要素の削除も行うことができます。変数history-length
は、ほとんどのヒストリーリストの最大長を指定する変数です。特定のヒストリーリストにたいして異なる最大長を指定するには、そのヒストリーリストシンボルのhistory-length
プロパティにその最大長をセットします。変数history-delete-duplicates
には、ヒストリー内の重複を削除するかどうかを指定します。
この関数はneweltが空文字列でなければ、それを新たな要素として変数history-varに格納されたヒストリーリストに追加して、更新されたヒストリーリストをリターンする。これはmaxeltまたはhistory-length
がが非nil
の場合は、リストの長さをその変数の値に制限する(以下参照)。maxeltに指定できる値の意味は、history-length
の値と同様。
add-to-history
は通常、history-delete-duplicates
が非nil
ならば、ヒストリーリスト内の重複メンバーを削除する。しかし、keep-allが非nil
の場合、それは重複を削除しないことを意味し、たとえneweltが空でもリストに追加する。
この変数の値がnil
の場合、ミニバッファーから読み取りを行う標準的な関数は、ヒストリーリストに新たな要素を追加しない。これにより、Lispプログラムがadd-to-history
を使用して明示的に入力ヒストリーを管理することになる。デフォルト値はt
。
この変数の値は、最大長を独自に指定しないすべてのヒストリーリストの最大長を指定する。値がt
の場合は、最大長がない(古い要素を削除しない)ことを意味する。ヒストリーリスト変数のシンボルのhistory-length
プロパティが非nil
の場合には、その特定のヒストリーリストにたいする最大長として、そのプロパティ値がこの変数をオーバーライドする。
この変数の値がt
の場合、それは新たなヒストリー要素の追加時に、以前からある等しい要素が削除されることを意味する。
以下は、標準的なミニバッファーヒストリーリスト変数です:
ミニバッファーヒストリー入力にたいするデフォルトのヒストリーリスト。
query-replace
の引数(および他のコマンドの同様の引数)にたいするヒストリーリスト。
ファイル名引数にたいするヒストリーリスト。
バッファー名引数にたいするヒストリーリスト。
正規表現引数にたいするヒストリーリスト。
拡張コマンド名引数にたいするヒストリーリスト。
シェルコマンド引数にたいするヒストリーリスト。
評価されるためのLisp式引数にたいするヒストリーリスト。
フェイス引数にたいするヒストリーリスト。