ミニバッファに入力した内容はすべてミニバッファ履歴リストに保存されるため、後で簡単に再利用できます。これには補完候補(ファイル名、バッファ名、コマンド名など)や、その他のあらゆる種類のミニバッファ入力が含まれます。以下のコマンドを使用すると、以前の応答や別の応答を迅速にミニバッファに呼び出すことができます:
ミニバッファ履歴の前の項目、つまりより前の引数 (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)
を入力すると、ミニバッファの履歴リストを逆方向に辿り、より後のエントリをミニバッファに取得します。
ミニバッファ履歴に後続のエントリがない場合(例えば、以前に M-p と入力していない場合など)、ミニバッファに M-n と入力すると、Emacs はデフォルト引数のリスト(入力する可能性が高い値)から取得を試みます。これは、将来の履歴 を辿っていると考えることができます。ミニバッファ履歴を前方に検索する操作(ミニバッファの検索 を参照)には、この「将来の履歴」も含まれます。
ファイル名の「履歴」には、ファイル名や現在のバッファのポイントにあるURLなど、有用と思われるいくつかの候補が含まれます。この場合の「履歴」に設定されるデフォルト値は、オプション
file-name-at-point-functions
の値で指定される関数によって制御されます。デフォルトでは、その値は ffap パッケージ(ポイントにあるファイルとURLの検索
を参照)を呼び出し、ポイント周辺のテキストからデフォルトのファイルまたはURLを推測しようとします。この推測機能を無効にするには、オプションを
nil
の値にカスタマイズしてください。すると、ファイル名の「履歴」には、現在のバッファでアクセスしたファイル(もしあれば)とデフォルトディレクトリのみが含まれるようになります。
矢印キー UP と DOWN は M-p や M-n と同様に動作しますが、現在の履歴項目が1行より長い場合は、前後の履歴項目へ移動する前に、現在の履歴項目の直前または直後の行へ移動することができます。
M-p または M-n のミニバッファ履歴コマンドで挿入されたテキストを編集しても、履歴リスト内のエントリは変更されません。ただし、編集した引数を送信すると、履歴リストの末尾に追加されます。
M-r (previous-matching-history-element)
を使用すると履歴リストの古い要素を、M-s (next-matching-history-element)
を使用すると新しいエントリを検索できます。これらのコマンドはいずれも引数として正規表現を受け取り、最初にマッチしたエントリをミニバッファに取得します。正規表現の解説については、正規表現の構文を参照してください。数値のプレフィックス引数 n は、n
番目にマッチしたエントリを取得することを意味します。これらのコマンドは、ミニバッファから呼び出されるにもかかわらず、正規表現の引数を読み取るためにミニバッファを使用するという点で異例です。正規表現に大文字が含まれている場合、検索は大文字小文字を区別します(検索時の緩いマッチングを参照)。
また、インクリメンタル検索(C-s および C-r)を使用してミニバッファの履歴を検索することもできます。ミニバッファの検索を参照してください。
Emacsでは、数種類の異なる引数ごとに個別の履歴リストを保持しています。例えば、ファイル名用のリストがあり、これはファイル名を読み込むすべてのコマンドで使用されます。その他の履歴リストには、バッファ名、コマンド名(M-xで使用)、およびコマンド引数(query-replaceなどのコマンドで使用)があります。
変数 history-length
はミニバッファ履歴リストの最大長を指定します。新しい要素を追加する際、リストが長くなりすぎた場合は最古の要素が削除されます。値が t の場合、最大長の制限はありません。
変数 history-delete-duplicates
は、履歴内の重複を削除するかどうかを指定します。値が nil
以外の場合、新しい要素を追加すると、リスト内のそれと等しい他のすべての要素が削除されます。デフォルトは nil です。