2006-01-18

Emacs のキーボード・マクロ

キーボード・マクロって知ってる? キーボードへの入力をキーボードに覚えさせて、それを使いまわすもの。手順としては

  1. キーボード・マクロ記憶開始キーを押す
  2. キーボード・マクロ呼び出しキーを入力
  3. キーボードにカチャカチャ打ちこむ
  4. キーボード・マクロ記憶終了キーを押す
  5. 2. で教えた「キーボード・マクロ呼び出しキー」を打つと 3. で覚えさせたキー操作を実行する。

という感じ。

本当にこういうことがしたければ、キーボードにメモリーを載せなきゃいけない。ほとんどのキーボードは、そこまでお金をかけてないから、たいていソフトウェア側がキーボード・マクロをサポートしている。

今回は、Emacs が実装してるキーボード・マクロについて。

Emacs のキーボード・マクロ

Emacs のキーボード・マクロ記憶開始キーは C-x (、キーボード・マクロ記憶終了キーは C-x )C-x e で最後に記憶させたキーボード・マクロを呼び出す。

例えば次のテキスト

Excel: 表計算
Word: ワープロ
PowerPoint: プレゼン
...

<dt>Excel:</dt> <dd>表計算</dd>
<dt>Word:</dt> <dd>ワープロ</dd>
<dt>PowerPoint:</dt> <dd>プレゼン</dd>
...

という HTML の定義リストに直すには、こんな感じにキーボード・マクロを活用する。

C-x (     # キーボード・マクロ記憶開始
<dt>      # <dt> を入力
C-s :     # ':' を検索 (C-s は検索コマンド。カーソルは ':' の後ろへ)
</dt>     # </dt> を入力
C-f       # カーソルを右へ一つ移動
<dd>      # <dd> を入力
C-e       # 行末へ移動
</dd>     # </dd> を入力
C-n       # 次行へ移動
C-a       # 行頭へ移動
C-x )     # キーボード・マクロ記憶終了 (一行分の処理を覚えさせた)
C-x e     # 記憶したキーボード・マクロを呼び出し
C-x e     # 記憶したキーボード・マクロを呼び出し
...

100 回キーボード・マクロの呼び出しを実行する場合は、C-u 100 C-x e

CVS 版 Emacs の Tips

Emacs-22.0.50 だと、二回目以降のキーボード・マクロ呼び出しを e だけでできる。つまり

C-x e C-x e C-x e ...

という呼び出し作業が

C-x e e e ...

という風に簡略化できる。

あとがき

はてな人力検索の

に山下達雄さんが dmacro.el を紹介する回答を返していて

dmacro.el も便利だけど、Emacs-22.0.50 のキーボード・マクロにもこんな Tips があるよ〜、と書こうと思ったら前半が長くなっちゃった。う〜ん、反省。

そうそう、先のはてな人力検索にはぼくも回答してる。初人力検索!

No comments:

Post a Comment