前: Save Kbd Macro, 上: Keyboard Macros
C-x q(kbd-macro-query
)を使うと、
query-replace
と同様に変更するかどうか尋ねてくる
キーボードマクロを作れます。
キーボードマクロを定義しているときに、問い合わせが起きてほしい箇所で
C-x qを打ちます。
マクロの定義中はC-x qは何の動作もしませんが、
あとでマクロを実行させたときにはC-x qの箇所で処理を
続けるかどうか尋ねてくるようになります。
C-x qの問い合わせに対する有効な応答は、<SPC>(またはy)、
<DEL>(またはn)、<RET>(またはq)、C-l、
C-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。