Previous: , Up: 基本的な編集コマンド   [Contents][Index]


7.11 コマンドの繰り返し

単純なキーで呼び出されるものや、M-x command-name RETで実行できるような多くのコマンドは、数引数で繰り返し回数(数引数を参照してください)を与えることで、その回数だけ繰り返すことができます。しかし、入力を求めるものや数引数を別の目的に使うコマンドでは、この方法はうまくいきません。

コマンドC-x z (repeat)は、Emacsコマンドを何回も反復する別の方法です。このコマンドは、直前のEmacsコマンドが何であっても、それを繰り返します。繰り返されるコマンドは、まえと同じ引数を使います。毎回新たに引数を読み取ることはしません。

コマンドを2回以上繰り返すにはzを追加して入力します。1つのzでコマンドを1回繰り返します。z以外の文字を入力するか、マウスボタンを押すと繰り返しを終了します。

たとえば、20文字削除するためにC-u 2 0 C-dと入力したとしましょう。C-x z z zと入力すれば、(引数を含めて)削除コマンドをさらに3回繰り返し、全部で80文字削除できます。始めのC-x zでコマンドを1回繰り返し、そのあとのそれぞれのzで1回ずつ繰り返します。

制限された個数のコマンドの後に短縮キーで一時的にモードを過渡的に有効にする、repeat-modeをアクティブにすることもできます。現在サポートしている短縮されたキーシーケンスは、多数回の変更をアンドゥするC-x u C-x uのかわりのC-x u u、複数ウィンドウを切り替えるC-x o C-x oのかわりのC-x o o、選択されたウィンドウをインタラクティブにリサイズするためのC-x { { } } ^ ^ v vnext-errorにたいするマッチ間を移動するM-g n n p p、そしてページ間を移動するC-x ] ] [ [です。それ以外のキーではこの過渡的なモードをexitして、通常どおりに実行します。この過渡的なモードをexitするための追加キーは、ユーザーオプションrepeat-exit-keyで定義します。更にユーザーオプションrepeat-exit-timeoutをカスタマイズして透過的なモードをオフにするアイドルタイム秒数を指定することによって、この繰り返しの連鎖を一定のアイドルタイム後に自動的に中止することもできます。