直近で定義されたキーボードマクロ(kmacro-name-last-macro)に、(Emacsセッションの間有効な)コマンド名を付与します。
直近に定義されたキーボードマクロをキーシーケンスにバインドする(セッション期間中)(kmacro-bind-to-key)。
バッファに、キーボードマクロの定義を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)
の後にバインドしたいキーシーケンスを続けることで、最後のキーボードマクロ(現在の形式のまま)をキーにバインドすることもできます。グローバルキーマップ内の任意のキーシーケンスにバインドできますが、ほとんどのキーシーケンスにはすでに他のバインドが割り当てられているため、キーシーケンスは慎重に選択してください。(いずれかのキーマップで)既にバインドされているキーシーケンスにバインドしようとする場合、このコマンドは既存のバインドを置き換える前に確認を求めます。
既存のバインドを上書きすることによる問題を避けるため、キーシーケンス 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 にバインドします。
マクロの定義をファイルに保存できます。これにより、別の編集セッションで使用できるようになります。まず、定義を保存したいファイルを開きます。次に、以下のコマンドを実行してください。
M-x insert-kbd-macro RET macroname RET
これにより、後で実行した際に、現在と同じ定義で同一のマクロを定義するLispコードが挿入されます。(insert-kbd-macro
がLispコードを自動生成するため、これを行うのにLispコードを理解する必要はありません。)その後、ファイルを保存してください。後で load-file を使ってそのファイルを読み込むことができます(Emacs用Lispコードライブラリ を参照)。保存したファイルが初期化ファイル
~/.emacs (Emacs初期化ファイル を参照)である場合、Emacsを起動するたびにそのマクロが定義されます。
insert-kbd-macro にプレフィックス引数を指定すると、macroname にバインドしたキー(もしあれば)を記録するための追加の Lisp
コードが生成されます。これにより、ファイルをロードした際にマクロに同じキーが再割り当てされるようになります。
insert-kbd-macro にマクロ名を指定しない場合、last-kdb-macro を復元するための Lisp コードが挿入されます。