Next: , Previous: , Up: キーボードマクロ   [Contents][Index]


18.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で呼び出せて、keymap-global-setでキーにバインドできる有効な名前をつけます。キーボードマクロ以外に定義されている名前を指定すると、エラーメッセージが表示されて何も変更はされません。

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 (EmacsのためのLispコードによるライブラリーを参照してください)でロードできます。initファイル~/.emacs (Emacs初期化ファイルを参照してください)に保存すれば、そのマクロはEmacsを実行する度に定義されます。

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