GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Save-Keyboard-Macro.html ・ emacs-doc.conao3.com

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

C-x C-k n

直近で定義されたキーボードマクロ(kmacro-name-last-macro)に、(Emacsセッションの間有効な)コマンド名を付与します。

C-x C-k b

直近に定義されたキーボードマクロをキーシーケンスにバインドする(セッション期間中)(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) の後にバインドしたいキーシーケンスを続けることで、最後のキーボードマクロ(現在の形式のまま)をキーにバインドすることもできます。グローバルキーマップ内の任意のキーシーケンスにバインドできますが、ほとんどのキーシーケンスにはすでに他のバインドが割り当てられているため、キーシーケンスは慎重に選択してください。(いずれかのキーマップで)既にバインドされているキーシーケンスにバインドしようとする場合、このコマンドは既存のバインドを置き換える前に確認を求めます。

既存のバインドを上書きすることによる問題を避けるため、キーシーケンス 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 コードが挿入されます。