Next: , Previous: , Up: Keyboard Macros   [Contents][Index]


17.2 キーボードマクロリング

すべての定義されたキーボードマクロは、キーボードマクロリング(keyboard macro ring)に記録されます。キーボードマクロリングはすべてのバッファーで共有され、1つだけしかありません。

C-x C-k C-k

リングの先頭にあるキーボードマクロを実行します(kmacro-end-or-call-macro-repeat)。

C-x C-k C-n

キーボードマクロリングを、次のマクロ(古く定義されたもの)にローテートします(kmacro-cycle-ring-next)。

C-x C-k C-p

キーボードマクロリングを前のマクロ(新しく定義されたもの)にローテートします(kmacro-cycle-ring-previous)。

キーボードマクロリングを操作するすべてのコマンドは、同じC-x C-kを使います。これらのコマンドでは、すぐ後にコマンドを実行して繰り返す場合には、互いにC-x C-kプレフィクスを必要としません。たとえば、

C-x C-k C-p C-p C-k C-k C-k C-n C-n C-k C-p C-k C-d

これは、キーボードマクロリングを“2つ前”のマクロが先頭にくるようにローテートして、3回実行します。次にキーボードマクロリングをローテートして、元は先頭だったマクロを先頭に戻して1回実行します。次にキーボードマクロリングを“1つ前”のマクロが先頭にくるようにローテートして、それを実行します。そして最後にそれを削除しています。

コマンドC-x C-k C-k (kmacro-end-or-call-macro-repeat)は、マクロリングの先頭にあるキーボードマクロを実行します。もう一度すぐにC-kをタイプすると、マクロを繰り返すことができます。すぐにC-nC-pをタイプすれば、マクロリングをローテートすることができます。

キーボードマクロを定義しているとき、C-x C-k C-kF4と同様に振る舞いますが、すぐ後にタイプされた場合は異なります。このセクションで説明するほとんどのキーバインドは、C-x C-kプレフィクスが必要ない場合があります。たとえば、すぐにC-kをタイプした場合は、マクロを再実行します。

コマンドC-x C-k C-n (kmacro-cycle-ring-next)およびC-x C-k C-p (kmacro-cycle-ring-previous)は、マクロリングをローテートして、次または前のキーボードマクロをリングの先頭に移動させます。新しく先頭となったマクロの定義は、エコーエリアに表示されます。お望みのマクロが先頭にくるまで、すぐにC-nまたはC-pを繰り返しタイプすれば、マクロリングのローテートを続けることができます。新しくマクロリングの先頭にきたマクロを実行するには、単にC-kをタイプします。

Emacsはマクロリングの先頭を、“最後に定義されたキーボードマクロ”として扱います。たとえば、そのマクロはF4で実行でき、C-x C-k nで名前をつけることができます。

キーボードマクロリングに格納できるマクロの最大数は、カスタマイズ可能な変数kmacro-ring-maxにより決定されます。