ミニバッファーでタイプしたすべての内容は、後で簡単に再利用できるようにミニバッファーヒストリーリスト(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はデフォルト引数のリストから、あなたが入力するだろうと思われる値を取り出します。これは“未来のヒストリー”を移動すると考えることもできます。
ファイルにたいする“未来のヒストリー(future
history)”には、カレントバッファー内のポイント位置にあるファイル名やURLのような、あなたが便利だと思うかもしれないいくつかの候補が含まれます。この場合、“未来のヒストリー”に配されるデフォルトは、オプションfile-name-at-point-functions
の値にセットされた関数により制御されます。デフォルトでは、この値はffap
パッケージ((ポイント位置のファイルやURLを開く)を参照)を呼び出します。これはポイント周辺のテキストからデフォルトとなるファイルやURLを推測します。この推測を無効にするには、このオプションをnil
値にカスタマイズします。これにより“未来のヒストリー”に含まれるのは、(もしあれば)カレントバッファーでvisitされたファイル、およびデフォルトディレクトリーのファイルだけになります。
矢印キーのUPとDOWNは、M-pやM-nのように機能しますが、カレントヒストリーアイテムが複数行の場合には、前(または次)のヒストリーアイテムに移動する前に、前(または次)の行に移動します。
ミニバッファーコマンドのM-pまたはM-nで挿入されたテキストを編集しても、ヒストリーリストのエントリーは変更されません。かわりに編集された引数が確定されたとき、ヒストリーリストの最後に追加されます。
M-r
(previous-matching-history-element
)でヒストリーリストの古い要素を、M-s
(next-matching-history-element
)で新しいエントリーを探すことができます。これらのコマンドはどちらも引数として正規表現(regular
expression)を要求し、それにマッチした最初のエントリーをミニバッファーに取り出します。正規表現についての説明は、正規表現の構文を参照してください。数引数nを指定すると、それはn番目に一致したエントリーを取り出すことを意味します。これらのコマンドはミニバッファーから呼び出されたとはいえ、ミニバッファーを使って正規表現を読みとるという点では、変わったコマンドです。正規表現に大文字が含まれていると、大文字小文字を区別する検索(検索中のLaxマッチングを参照してください)となります。
ヒストリーをインクリメンタルサーチすることもできます。ミニバッファーの検索を参照してください。
Emacsは引数の種類ごとに個別のリストを保持します。たとえばファイル名のリストは、ファイル名を読みとるすべてのコマンドで使われたファイル名、といった具合です。ほかのヒストリーリストとしてはバッファー名やコマンド名(M-xで使われたもの)、コマンド引数(query-replace
のような引数で使われたもの)があります。
変数history-length
には、ミニバッファーのヒストリーリストの最大の長さを指定します。リストが長くなりすぎたときは、一番古い要素を削除して新しい要素を追加します。t
を指定したときは、長さは無制限になります。
変数history-delete-duplicates
には、重複したヒストリーを削除するかを指定します。非nil
の場合、新しい要素が追加されるとリストからそれと同じ要素がすべて削除されます。デフォルトはnil
です。