Previous: コマンドのヒストリー, Up: コマンドループ [Contents][Index]
キーボードマクロ(keyboard macro)はコマンドとして考えることが可能な入力イベントの記録されたシーケンスであり、キー定義によって作成されます。キーボードマクロのLisp表現はイベントを含む文字列かベクターです。キーボードマクロとLispマクロ(マクロを参照)を混同しないでください。
この関数はイベントシーケンスとしてkbdmacroを実行する。kbdmacroが文字列かベクターなら、たとえそれがユーザーによる入力であっても、その中のイベントは忠実に実行される。シーケンスは単一のキーシーケンスであることを要求されない。キーボードマクロ定義は、通常は複数のキーシーケンスを結合して構成される。
kbdmacroがシンボルなら、そのシンボルの関数定義はkbdmacroの箇所に使用される。それが別のシンボルならこのプロセスを繰り返す。最終的に結果は文字列かベクターになる。結果がシンボル、文字列、ベクターでなければエラーがシグナルされる。
引数countは繰り返すカウントであり、kbdmacroがその回数実行される。countが省略またはnil
なら1回実行される。0ならkbdmacroはエラーに遭遇するか検索が失敗するまで何度も実行される。
loopfuncが非nil
なら、それはマクロの繰り返しごとに呼び出される引数なしの関数である。loopfuncがnil
をリターンするとマクロの実行が停止する。
execute-kbd-macro
の使用例は単一イベントの読み取りを参照のこと。
この変数はカレントで実行中のキーボードマクロを定義する文字列かベクター。nil
ならカレントで実行中のマクロは存在しない。マクロの実行により実行されたときに異なる振る舞いをするように、コマンドはこの変数をテストできる。この変数を自分でセットしてはならない。
この変数はキーボードマクロの定義中のときだけ非nil
である。マクロ定義中の間は異なる振る舞いをするように、コマンドはこの変数をテストできる。既存のマクロ定義に追加する間、値はappend
になる。コマンドstart-kbd-macro
、kmacro-start-macro
、end-kbd-macro
はこの変数をセットする。この変数を自分でセットしてはならない。
この変数は常にカレント端末にたいしてローカルであり、バッファーローカルにできない。複数の端末を参照のこと。
この変数はもっとも最近定義されたキーボードマクロの定義である。値は文字列、ベクター、またはnil
。
この変数は常にカレント端末にたいしてローカルであり、バッファーローカルにできない。複数の端末を参照のこと。
これはキーボードマクロが終了したときに実行されるノーマルフックであり、何がキーボードマクロを終了させたか(マクロの最後に到達したのか、あるいはエラーにより最後到達する前に終了したのか)は問わない。