Previous: Command History, Up: Command Loop


20.14 キーボードマクロ

キーボードマクロは、 コマンドとみなせる入力イベントのまとまった列であり、 キーの定義から構成されます。 Lispにおけるキーボードマクロの表現は、 イベントを含んだ文字列やベクトルです。 キーボードマクロとLispマクロ(see Macros)を混同しないでください。

— Function: execute-kbd-macro kbdmacro &optional count

この関数はキーボードマクロkbdmacroをイベント列として実行する。 kbdmacroが文字列かベクトルであると、 その中のイベントをユーザーが入力した場合とまったく同様に実行する。 列は単一のキーイベントである必要はない。 通常、キーボードマクロの定義は、複数のキー列を連結したものである。

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

引数countは繰り返し回数であり、 kbdmacroをその回数だけ実行する。 countを省略するかnilであると、kbdmacroを1回実行する。 countが0であると、 kbdmacroの実行をエラーに出会うか探索に失敗するまで繰り返す。

execute-kbd-macroを使った例についてはsee Reading One Event

— Variable: executing-macro

この変数は、現在実行中のキーボードマクロの定義である 文字列やベクトルを保持する。 これがnilであると、現在実行中のマクロはない。 コマンドでこの変数を検査することで、 マクロ実行で起動されたときのふるまいを変更できる。 読者自身はこの変数に設定しないこと。

— Variable: defining-kbd-macro

この変数は、キーボードマクロを定義中かどうかを表す。 コマンドでこの変数を検査することで、マクロ定義中のふるまいを変更できる。 コマンドstart-kbd-macroend-kbd-macroがこの変数に設定する。 読者自身は設定しないこと。

この変数は現在の端末に対してつねにローカルであり、 バッファに対してローカルにはならない。 see Multiple Displays

— Variable: last-kbd-macro

この変数は、もっとも最近に定義されたキーボードマクロの定義である。 その値は、文字列かベクトル、あるいは、nilである。

この変数は現在の端末に対してつねにローカルであり、 バッファに対してローカルにはならない。 see Multiple Displays