Next: , Previous: Variables, Up: Customization


28.3 キーボードマクロ

キーボードマクロは、 ユーザーが一連のキー操作に基づいて定義したコマンドです。 たとえば、C-n C-dという打鍵を40回繰り返す必要があるとわかったら、 C-n C-dを実行するキーボードマクロを定義し、 それを40回繰り返す指定をして呼び出すと迅速に作業できます。

C-x (
キーボードマクロの定義を開始する (start-kbd-macro)。
C-x )
キーボードマクロの定義を終了する (end-kbd-macro)。
C-x e
もっとも最近のキーボードマクロを実行する (call-last-kbd-macro)。
C-u C-x (
もっとも最近のキーボードマクロを再実行したうえで、 その定義にキーを追加する。
C-x q
キーボードマクロの実行中にこの場所に到達したら、 実行の確認を求める (kbd-macro-query)。
M-x name-last-kbd-macro
もっとも最近に定義したキーボードマクロに(現在のEmacsセッションだけで有効な) コマンド名を与える。
M-x insert-kbd-macro
キーボードマクロの定義をLispコードとしてバッファに挿入する。
C-x C-k
まえに定義したキーボードマクロを編集する (edit-kbd-macro)。
M-x apply-macro-to-region-lines
リージョン内の各行に対して、最後に定義したキーボードマクロを実行する。

キーボードマクロは、それがLispではなくEmacsのコマンド言語で 記述されているという点で、通常のEmacsコマンドとは違っています。 このため、キーボードマクロは初心者でも簡単に作れ、 間に合わせとして定義するのにも向いています。 しかし、Emacsのコマンド言語は、 プログラム言語として知的で汎用的な動作を記述できるほど強力ではありません。 そういう場合には、Lispを使ってください。

キーボードマクロは、定義内容のコマンド列を実際に実行しながら定義できます。 いいかえれば、キーボードマクロを定義しているときに、 その定義の第1回目の実行が行われることになります。 ですから、コマンドがどのように動作するかを目で見ながら確認でき、 頭の中だけで動作を考えるよりも楽に定義できます。 コマンド列の最後まできてキーボードマクロを定義し終ると、 第1回目の実行も終ったことになります。 そのあとは、マクロを呼び出すことで何回でもそのコマンド列全体を実行できます。