前: Save Kbd Macro, 上: Keyboard Macros


28.3.3 変化のあるマクロの実行

C-x qkbd-macro-query)を使うと、 query-replaceと同様に変更するかどうか尋ねてくる キーボードマクロを作れます。 キーボードマクロを定義しているときに、問い合わせが起きてほしい箇所で C-x qを打ちます。 マクロの定義中はC-x qは何の動作もしませんが、 あとでマクロを実行させたときにはC-x qの箇所で処理を 続けるかどうか尋ねてくるようになります。

C-x qの問い合わせに対する有効な応答は、<SPC>(またはy)、 <DEL>(またはn)、<RET>(またはq)、C-lC-rです。 これらの意味はquery-replaceと同じですが、 query-replaceのすべての応答が意味を持つとは限りません。

<SPC>は続行、<DEL>はこの回の反復の残りを飛ばしてただちにつぎの 反復に進むという意味になります。 <RET>ではこの回の反復の残りも以後の反復もすべて取り消します。 C-lは画面を再描画し、再度どうするかを問い合わせてきます。

C-rで再帰編集レベルに入るので、そこでキーボードマクロにはない 編集を行えます。 C-M-cで再帰編集から抜けると、再度どうするかを聞いてきます。 ここで<SPC>を打つと、キーボードマクロの残りの部分が実行されます。 キーボードマクロの残りの部分が望みどおりの動作をする状態に ポイントやテキストを保っておくのは、ユーザーの責任です。

C-u C-x q、つまり、数引数を指定したC-x qは、 まったく違った動作をします。 キーボードマクロの定義中でも実行中でも、 キーボードから入力を受け付ける再帰編集に入ります。 定義中の場合、再帰編集の中で行った操作はマクロの一部にはなりません。 実行中の場合、再帰編集の中で各反復ごとに個別の編集を行う機会が得られます。 See Recursive Edit