GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Repetition.html ・ emacs-doc.conao3.com

10.6 ミニバッファコマンドの繰り返し

ミニバッファを一度でも使用するすべてのコマンドは、その引数の値とともに、専用の履歴リストであるコマンド履歴に記録されるため、コマンド全体を再現することができます。特に、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 のミニバッファに入ると、通常のミニバッファ履歴コマンド(ミニバッファ履歴を参照)を使用して履歴リストを移動できます。目的の直前のコマンドが見つかったら、通常通りにその式を編集し、RET と入力して実行できます。

インクリメンタル検索は、厳密に言えばミニバッファを使用しません。そのため、複雑なコマンドのように動作しますが、通常 C-x ESC ESC の履歴リストには表示されません。isearch-resume-in-command-history に nil 以外の値を設定することで、インクリメンタル検索コマンドを履歴に表示させることができます。インクリメンタル検索 を参照してください。

過去にミニバッファを使用したコマンドの一覧は、変数 command-history に Lisp リストとして格納されています。各要素は、1つのコマンドとその引数を記述する Lisp 式です。Lisp プログラムは、command-history 要素を用いて eval を呼び出すことで、コマンドを再実行できます。