キーボードマクロでは、マクロがその都度変更を行うかどうかを確認するという、query-replaceと同様の効果を実現できます。
マクロ実行中にこの時点に達したら、確認を求める(kbd-macro-query)。
マクロを定義する際、クエリを実行させたい箇所に型 C-x q を指定します。マクロ定義時には C-x q は何もしませんが、後でマクロを実行すると、C-x q が続行するかどうかを対話的に確認します。
C-x q が問い合わせた際の有効な応答は以下の通りです:
キーボードマクロの実行を継続します。
このマクロの繰り返しの残りの処理はスキップし、すぐに次の繰り返しを開始してください。
この繰り返しの残りをスキップし、以降の繰り返しをキャンセルしてください。
再帰的な編集レベルに入ると、マクロに含まれない編集を行うことができます。C-M-c を使用して再帰的な編集を抜けると、キーボードマクロをどのように続行するか改めて問われます。このとき SPC と入力すると、マクロ定義の残りの部分が実行されます。ポイントとテキストを、マクロの残りの処理が意図した通りに動作する状態にしておくことは、ユーザーの判断に委ねられています。
C-u C-x q(接頭辞引数を伴うC-x q)は、全く異なる機能を果たします。これは、マクロの定義時に入力する場合と、マクロから実行される場合の両方において、キーボードからの入力を読み取る再帰的編集に入ります。定義時には、再帰的編集内で行った編集内容はマクロの一部にはなりません。マクロの実行時には、再帰的編集によって、繰り返しごとに特定の編集を行うことができます。再帰的編集レベルを参照してください。