Next: Repetition, Previous: Completion, Up: Minibuffer [Contents][Index]
ミニバッファーで入力したすべての引数は、ミニバッファーヒストリーリスト(minibuffer history list)に保存されているので、簡単に後でまた使うことができます。以下のコマンドにより、前の引数をすばやく探してミニバッファーに呼び出すことができます:
ミニバッファーヒストリーの前のアイテム、つまり以前のアイテムに移動します(previous-history-element
)。
ミニバッファーヒストリーの次のアイテムに移動します(next-history-element
)。
M-pやM-nと同様ですが、前のヒストリーアイテムに移動する前に、複数行アイテムの前、または次の行に移動します(previous-line-or-history-element
、およびnext-line-or-history-element
)。
regexpにマッチする、ミニバッファーヒストリーの以前のアイテムに移動します(previous-matching-history-element
)。
regexpにマッチする、ミニバッファーヒストリーの以降のアイテムに移動します(next-matching-history-element
)。
ミニバッファーでのM-p
(previous-history-element
)は、ミニバッファーのヒストリーリストのアイテムを1つずつ移動します。M-pはヒストリーリストの以前のアイテムを取り出して、ミニバッファーの既存の内容を置き換えます。M-n
(next-history-element
)は、ミニバッファーのヒストリーリストを反対方向、つまり以降のエントリーを取り出してミニバッファーの既存の内容を置き換えます。
ミニバッファーヒストリーに以降のエントリーがないとき(たとえば前に1回もM-pを入力していないとき)、Emacsはデフォルト引数のリストから、あなたが入力するだろうと思われる値を取り出します。これは“未来のヒストリー”を移動すると考えることもできます。
矢印キーのUPとDOWNは、M-pやM-nのように機能しますが、カレントヒストリーアイテムが複数行の場合には、前(または次)のヒストリーアイテムに移動する前に、前(または次)の行に移動します。
ミニバッファーコマンドのM-pまたはM-nで挿入されたテキストを編集しても、ヒストリーリストのエントリーは変更されません。かわりに編集された引数が確定されたとき、ヒストリーリストの最後に追加されます。
M-r
(previous-matching-history-element
)でヒストリーリストの古い要素を、M-s
(next-matching-history-element
)で新しいエントリーを探すことができます。これらのコマンドはどちらも引数として正規表現(regular
expression)を要求し、それにマッチした最初のエントリーをミニバッファーに取り出します。正規表現についての説明は、Regexpsを参照してください。数引数nを指定すると、それはn番目に一致したエントリーを取り出すことを意味します。これらのコマンドはミニバッファーから呼び出されたとはいえ、ミニバッファーを使って正規表現を読みとるという点では、変わったコマンドです。正規表現に大文字が含まれていると、大文字小文字を区別する検索(Lax Searchを参照してください)となります。
ヒストリーをインクリメンタルサーチすることもできます。Isearch Minibufferを参照してください。
Emacsは引数の種類ごとに個別のリストを保持します。たとえばファイル名のリストは、ファイル名を読みとるすべてのコマンドで使われたファイル名、といった具合です。ほかのヒストリーリストとしてはバッファー名やコマンド名(M-xで使われたもの)、コマンド引数(query-replace
のような引数で使われたもの)があります。
変数history-length
には、ミニバッファーのヒストリーリストの最大の長さを指定します。リストが長くなりすぎたときは、一番古い要素を削除して新しい要素を追加します。t
を指定したときは、長さは無制限になります。
変数history-delete-duplicates
には、重複したヒストリーを削除するかを指定します。非nil
の場合、新しい要素が追加されるとリストからそれと同じ要素がすべて削除されます。デフォルトはnil
です。