Emacsのキーボードマクロについて

キーボードマクロとは、

「キーボードの操作を記録しておいて、後でそれをワンタッチで再生する」

ことができる機能。

同じことを何回も打たなきゃいけないような作業をするときには非常に重宝する。


Emacsでは、キーボードマクロを簡単に扱うことができる。

作成したマクロはファイルに保存することができ、毎回の起動時にそれを自動的にロードさせることもできる。

マクロの作り方

  1. C-x-( で記録開始
  2. 記録させたいキー操作を打つ
  3. C-x-) で記録終了

マクロの再生

  • C-x-e をタイプ

これだけ。

マクロの作業を何回か繰り返し実行させたいときは、

  • C-u 数字 C-x-e

とタイプすると、入力した数字の回数分のマクロ操作を実行させることができる。


……ただし、この作成したマクロはEmacsの終了時に消えてしまう。

作ったマクロを次回の起動時にも使えるようにするためには、以下のようにしてマクロをファイルに保存し、起動時に読み込ませる必要がある。

マクロの保存

  1. マクロを作成したあと、M-x name-last-kbd-macro Enter とタイプ(←C-x C-k n でも可能かも)
  2. 好きなマクロ名を入力して Enter をタイプ(←作成したマクロに名前を付ける)
  3. .emacs ファイルを開いて M-x insert-kbd-macro Enter 入力したマクロ名 Enter とタイプ
  4. すると、マクロの内容がLispコードに変換される。

なお、キーボードマクロの使用を有効にするためには、

  (load-library "kmacro")

.emacs に記述することが必要。


これまでの操作により、M-x 入力したマクロ名 で保存したマクロを次回起動時からも再生することができる。


また、頻繁に使いそうなマクロなら、以下のようにしてマクロにキーバインドを割り当ててもいい。

作成したマクロにキーバインドを割り当てる

  (global-set-key "キーバインド" '入力したマクロ名)

こんな感じのものを .emacs に記述すればいい。

実際には、たとえば以下のように記述する。

  (global-set-key "\C-x\C-kM" 'my-macro)


参考:入門 GNU Emacs (オライリー)