キーボードマクロで、query-replace
のように変更を行うか応答を求める効果を作ることができます。
マクロ実行中にこの箇所に到達すると確認を求めます(kbd-macro-query
)。
マクロ定義中に問い合わせを行いたい箇所でC-x qをタイプします。マクロ定義中はC-x qは何も行いませんが、後でマクロを実行するとC-x qは実行を続けるか対話的に確認を求めます。
以下はC-x qにたいする有効な応答です:
キーボードマクロの実行を続けます。
マクロのこの繰り返しでの残りの部分をスキップして、次の繰り返しを開始します。
マクロのこの繰り返しでの残りの部分をスキップして、これ以上の繰り返しを取り消します。
マクロの一部ではない編集を行うことができる、再帰編集レベル(recursive editing level)に入ります。C-M-cを使って再帰編集を抜けると、キーボードマクロを続行するか再び確認を求められます。ここでSPCをタイプすると、マクロ定義の残りの部分が実行されます。マクロの残りの部分が期待したように動作するためにポイントとテキストを残すのは、ユーザーの責任です。
C-x qにプレフィクス引数を指定したC-u C-x qは、完全に異なる関数を実行します。これはマクロ定義中およびマクロ実行中の両方で、キーボード入力を読みとる再帰編集に入ります。定義中のときは、再帰編集の中で行った編集はマクロの一部とはなりません。マクロ実行中は、再帰編集により各繰り返しにおいて特別な編集を行う機会が与えられます。再帰編集レベルを参照してください。