Next: , Previous: , Up: Keyboard Macros   [Contents][Index]


17.5 キーボードマクロの命名と保存

C-x C-k n

一番最近定義したキーボードマクロに、名前(持続期間はEmacsセッション中)を与えます(kmacro-name-last-macro)。

C-x C-k b

一番最近定義したキーボードマクロを、キーにバインド(持続期間はEmacsセッション中)します(kmacro-bind-to-key)。

M-x insert-kbd-macro

キーボードマクロの定義を、Lispコードとしてバッファーに挿入します。

キーボードマクロを後で使うために保存するには、C-x C-k n (kmacro-name-last-macro)を使って、それに名前を与えることができます。これはミニバッファーを使って名前を引数として読み取り、最後のキーボードマクロの現在の定義を実行するための、名前を定義します(後でこのマクロの定義を追加した場合、その名前のマクロ定義は変更されません)。マクロ名はLispシンボルで、M-xで呼び出せ、global-set-keyでキーにバインドできる有効な名前をつけます。キーボードマクロ以外に定義されている名前を指定すると、エラーメッセージが表示され何も変更はされません。

C-x C-k b (kmacro-bind-to-key)の後に、バインドしたいキーシーケンスを続けることにより、最後のキーボードマクロ(の現在の定義)をキーにバインドすることもできます。グローバルキーマップ(global keymap)の任意のキーシーケンスにバインドできますが、大部分のキーシーケンスはすでに他のバインドをもっているので、キーシーケンスの選択は慎重に行う必要があります。任意のキーマップで既存のバインドをもつキーシーケンスにバインドしようとすると、既存のバインドを置き換える前に確認を求めます。

既存のバインドの上書きに起因する問題を避けるには、キーシーケンスC-x C-k 0からC-x C-k 9と、C-x C-k AからC-x C-k Zを使います。これらのキーシーケンスは、キーボードマクロのバインド用に予約されています。これらのキーシーケンスにバインドするには、キーシーケンス全体ではなく数字か文字だけをタイプすればバインドできます。たとえば、

C-x C-k b 4

これは最後のキーボードマクロをキーシーケンスC-x C-k 4にバインドします。

1度マクロにコマンド名をつければ、その定義をファイルに保存できます。それは他の編集セッションでも使用できます。最初に定義を保存したいファイルをvisitします。次に以下のコマンドを使います:

M-x insert-kbd-macro RET macroname RET

これは後で実行するとき、今と同じ定義のマクロとなるLispコードをバッファーに挿入します(これを行うためにLispコードを理解する必要はありません。なぜならあなたのかわりにinsert-kbd-macroがLispコードを記述するからです)。それからファイルを保存します。後でそのファイルをload-file (Lisp Librariesを参照してください)でロードできます。initファイル~/.emacs (Init Fileを参照してください)に保存すれば、そのマクロはEmacsを実行する度に定義されます。

insert-kbd-macroに数引数を与えると、(もしあれば)macronameにバインドしたキーを記録するためのLispコードが追加されるので、ファイルをロードしたとき同じキーにマクロが割り当てられます。