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


8.6 ミニバッファーでのコマンドの繰り返し

ミニバッファーを使用したコマンドはすべて、コマンドヒストリー(command history)という特別なヒストリーリストに記録されます。これにはコマンドの引数の値も記録されるので、コマンド全体を再実行できます。特にM-xはコマンド名を読みとるので、M-xを使用したものはすべてそこに記録されます。

C-x ESC ESC

コマンドヒストリーから最近のミニバッファーのコマンドを再実行します(repeat-complex-command)。

M-x list-command-history

コマンドヒストリー全体を表示します。表示されたすべてのコマンドはC-x ESC ESCで再実行できます。一番最近のものが先頭に表示されます。

C-x ESC ESCは、ミニバッファーを使った最近のコマンドを再実行します。引数を与えないと、一番最近のコマンドを実行します。数引数で再実行したいコマンドを指定します。1は一番最近のコマンド、2はその前、といった具合です。

C-x ESC ESCは、前のコマンドをLisp式に変換して、その式でミニバッファーのテキストを初期化します。Lispを知らなくても、何のコマンドが再実行用に表示されているか明白でしょう。単にRETを入力すると、コマンドを変更せずに再実行します。実行する前にLisp式を編集して、コマンドを変更できます。実行されたコマンドは、一番最近のコマンドと等しくなければ、コマンドヒストリーの一番先頭に追加されます。

C-x ESC ESCで一度ミニバッファーの中に入れば、通常のミニバッファーのヒストリーコマンド(Minibuffer Historyを参照してください)を使って、ヒストリーリスト中を移動できます。以前に実行したコマンドが見つけたら、式を編集してRETにより実行できます。

厳密に言うとインクリメンタルサーチはミニバッファーを使いません。これが複雑なコマンドのように振る舞うとしても、通常はC-x ESC ESCで表示されるヒストリーリストに含まれません。ヒストリーにインクリメンタルサーチコマンドを表示させるには、isearch-resume-in-command-historyに非nilをセットしてください。Incremental Searchを参照してください。

ミニバッファーを使用した以前のコマンドのリストは、Lispのリスト値としてcommand-historyに格納されています。Lisp式の各要素は、1つのコマンドとその引数をあらわしています。Lispプログラムはevalcommand-historyの要素を使って呼び出すことで、コマンドを再実行できます。