ミニバッファを少なくとも1回使ったコマンドは,すべてミニバッファ引数の 値と一緒に特別のリストに履歴が記録されます.これを使ってそのコマンドを簡 単に繰り返すことができます.特にM-xはコマンド名を読むためにミニバッ ファを使うので,必ず記録されます.
repeat-complex-command
).previous-complex-command
).next-complex-command
).C-x ESCはミニバッファを使った最近のコマンドを再実行します. 引数がなければ,その中で最後のコマンドを繰り返します.数引数は,どのコマ ンドを繰り返すかを指示します.1では最後のものを,それ以上ではもっと以前 のものを実行します.
C-x ESCは前のコマンドをLisp式に変えて,その式のテキストを 入れたミニバッファを起動します.RETだけを入力すると,このコマンド は前の通りに繰り返されます.Lisp式を編集して,コマンドを変更できます.最 終的に得られた結果の式が実行されます.繰り返されたコマンドは,直前に実行 してすでに履歴にあるものと少しでも変わったときはコマンド履歴の先頭に付け 加えられます.
Lispの構文を知らなくても,どのコマンドを繰り返しのために表示しているか はたぶんわかるでしょう.テキストを変更しなければ,以前とまったく同じに繰 り返すことは確かです.
C-x ESCでミニバッファを選択したときに,表示されたコマンド が繰り返したいものでなかった場合,M-nとM-pを使ってコマンド履 歴を移動できます.M-pはミニバッファの内容を1つ前に記録されたコマン ドと入れ換え,M-nは1つ後ろに記録されたコマンドと入れ換えます.欲し いものが見つかったら,その式は通常のように編集できるし,RETを入力 して実行もできます.表示されたコマンドに行なった編集はM-nと M-pで失われます.
M-pはM-nよりもよく使われます.これは,まず最後のコマンドを
繰り返すことが多く,ついでその前のコマンドを繰り返すためです.これらのキー
はC-x ESCの中でprevious-complex-command
と
next-complex-command
のコマンドを実行するように特別に定義されてい
ます.
ミニバッファを使ったコマンドは,変数command-history
にLispのリス
トとして保存されています.要素はそれぞれ1つのコマンドとその引数からなる
Lisp式です.command-history
の要素をeval
に与えることによっ
てLispプログラムからも再実行ができます.