Next: , Previous: , Up: Minibuffer   [Contents][Index]


8.5 ミニバッファーヒストリー

ミニバッファーで入力したすべての引数は、ミニバッファーヒストリーリスト(minibuffer history list)に保存されているので、簡単に後でまた使うことができます。以下のコマンドにより、前の引数をすばやく探してミニバッファーに呼び出すことができます:

M-p
UP

ミニバッファーヒストリーの前のアイテム、つまり以前のアイテムに移動します(previous-history-element)。

M-n
DOWN

ミニバッファーヒストリーの次のアイテムに移動します(next-history-element)。

M-r regexp RET

regexpにマッチする、ミニバッファーヒストリーの以前のアイテムに移動します(previous-matching-history-element)。

M-s regexp RET

regexpにマッチする、ミニバッファーヒストリーの以降のアイテムに移動します(next-matching-history-element)。

ミニバッファーでのM-pまたはUP (previous-history-element)は、ミニバッファーのヒストリーリストのアイテムを1つずつ移動します。M-pはヒストリーリストの以前のアイテムを取り出して、ミニバッファーの既存の内容を置き換えます。M-nまたはDOWN (next-history-element)は、ミニバッファーのヒストリーリストを反対方向、つまり以降のエントリーを取り出してミニバッファーの既存の内容を置き換えます。

ミニバッファーヒストリーに以降のエントリーがないとき(たとえば前に1回もM-pを入力していないとき)、Emacsはデフォルト引数のリストから、あなたが入力するだろうと思われる値を取り出します。これは“未来のヒストリー”を移動すると考えることもできます。

ミニバッファーコマンドのM-pまたはM-nで挿入されたテキストを編集しても、ヒストリーリストのエントリーは変更されません。かわりに編集された引数が確定されたとき、ヒストリーリストの最後に追加されます。

M-r (previous-matching-history-element)でヒストリーリストの古い要素を、M-s (next-matching-history-element)で新しいエントリーを探すことができます。これらのコマンドはどちらも引数として正規表現(regular expression)を要求し、それにマッチした最初のエントリーをミニバッファーに取り出します。正規表現についての説明は、Regexpsを参照してください。数引数nを指定すると、それはn番目に一致したエントリーを取り出すことを意味します。これらのコマンドはミニバッファーから呼び出されたとはいえ、ミニバッファーを使って正規表現を読みとるという点では、変わったコマンドです。正規表現に大文字が含まれていると、大文字小文字を区別する検索(Search Caseを参照してください)となります。

ヒストリーをインクリメンタルサーチすることもできます。Isearch Minibufferを参照してください。

Emacsは引数の種類ごとに個別のリストを保持します。たとえばファイル名のリストは、ファイル名を読みとるすべてのコマンドで使われたファイル名、といった具合です。ほかのヒストリーリストとしてはバッファー名やコマンド名(M-xで使われたもの)、コマンド引数(query-replaceのような引数で使われたもの)があります。

変数history-lengthには、ミニバッファーのヒストリーリストの最大の長さを指定します。リストが長くなりすぎたときは、一番古い要素を削除して新しい要素を追加します。tを指定したときは、長さは無制限になります。

変数history-delete-duplicatesには、重複したヒストリーを削除するかを指定します。非nilの場合、新しい要素が追加されるとリストからそれと同じ要素がすべて削除されます。デフォルトはnilです。