ミニバッファーを使用したコマンドはすべて、コマンドヒストリー(command history)という特別なヒストリーリストに記録されます。これにはコマンドの引数の値も記録されるので、コマンド全体を再実行できます。特にM-xはコマンド名を読みとるので、M-xを使用したものはすべてそこに記録されます。
コマンドヒストリーから最近のミニバッファーのコマンドを再実行します(repeat-complex-command
)。
コマンドヒストリー全体を表示します。表示されたすべてのコマンドはC-x ESC ESCで再実行できます。一番最近のものが先頭に表示されます。
C-x ESC ESCは、ミニバッファーを使った最近のコマンドを再実行します。引数を与えないと、一番最近のコマンドを実行します。数引数で再実行したいコマンドを指定します。1は一番最近のコマンド、2はその前、といった具合です。
C-x ESC ESCは、前のコマンドをLisp式に変換して、その式でミニバッファーのテキストを初期化します。Lispを知らなくても、何のコマンドが再実行用に表示されているか明白でしょう。単にRETを入力すると、コマンドを変更せずに再実行します。実行する前にLisp式を編集して、コマンドを変更できます。実行されたコマンドは、一番最近のコマンドと等しくなければ、コマンドヒストリーの一番先頭に追加されます。
C-x ESC ESCで一度ミニバッファーの中に入れば、通常のミニバッファーのヒストリーコマンド(ミニバッファーヒストリーを参照してください)を使って、ヒストリーリスト中を移動できます。以前に実行したコマンドが見つけたら、式を編集してRETにより実行できます。
厳密に言うとインクリメンタルサーチはミニバッファーを使いません。これが複雑なコマンドのように振る舞うとしても、通常はC-x ESC ESCで表示されるヒストリーリストに含まれません。ヒストリーにインクリメンタルサーチコマンドを表示させるには、isearch-resume-in-command-history
に非nil
をセットしてください。インクリメンタル検索を参照してください。
ミニバッファーを使用した以前のコマンドのリストは、Lispのリスト値としてcommand-history
に格納されています。Lisp式の各要素は、1つのコマンドとその引数をあらわしています。Lispプログラムはeval
にcommand-history
の要素を使って呼び出すことで、コマンドを再実行できます。