GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Keyboard-Macros.html ・ emacs-doc.conao3.com

22.16 キーボードマクロ

キーボードマクロとは、コマンドと見なしてキーの定義に設定できる、あらかじめ用意された入力イベントのシーケンスのことです。キーボードマクロのLispにおける表現は、イベントを含む文字列またはベクトルです。キーボードマクロをLispのマクロと混同しないようにしてください(マクロを参照)。

関数: execute-kbd-macro kbdmacro &optional count loopfunc

この関数は、kbdmacro を一連のイベントとして実行します。kbdmacro が文字列またはベクトルである場合、そこに含まれるイベントは、あたかもユーザーが入力したかのようにそのまま実行されます。このシーケンスが単一のキーシーケンスであることは想定されていません。通常、キーボードマクロの定義は、複数のキーシーケンスを連結して構成されます。

kbdmacro がシンボルである場合、その関数定義が kbdmacro の代わりに使用されます。それが別のシンボルである場合、この処理が繰り返されます。最終的に、結果は文字列またはベクトルになるはずです。結果がシンボル、文字列、またはベクトルでない場合は、エラーが通知されます。

引数 count は繰り返し回数であり、kbdmacro はその回数分だけ実行されます。count が省略された場合や nil の場合は、kbdmacro が1回実行されます。0 の場合は、エラーが発生するか検索に失敗するまで、kbdmacro が繰り返し実行されます。

loopfunc が nil でない場合、それはマクロの各反復前に引数なしで呼び出される関数となります。loopfunc が nil を返すと、マクロの実行は停止します。

execute-kbd-macro の使用例については、Reading One Event を参照してください。

変数: executing-kbd-macro

この変数には、現在実行中のキーボードマクロを定義する文字列またはベクトルが格納されます。現在実行中のマクロがない場合は nil となります。コマンドはこの変数を判定することで、実行中のマクロから呼び出された際に異なる動作をさせることができます。この変数を自身で設定しないでください。

変数: defining-kbd-macro

この変数が nil でないのは、キーボードマクロが定義されている場合に限られます。コマンドはこの変数を判定することで、マクロの定義中に異なる動作をさせることができます。既存のマクロの定義に追記している間は、値は append となります。コマンド start-kbd-macro、kmacro-start-macro、end-kbd-macro はこの変数を設定します。ご自身で設定しないでください。

この変数は常に現在のターミナルにローカルであり、バッファローカルにはなり得ません。複数ターミナルを参照してください。

変数: last-kbd-macro

この変数は、直近に定義されたキーボードマクロの定義です。その値は、文字列、ベクトル、または nil となります。

この変数は常に現在のターミナルにローカルであり、バッファローカルにはなり得ません。複数ターミナルを参照してください。

変数: kbd-macro-termination-hook

この通常のフックは、キーボードマクロが終了した際に、終了原因(マクロの終端到達、またはマクロを途中で終了させたエラー)に関わらず実行されます。