キーボードマクロ

Emacsでは、キーボードマクロというものがある。これは、同じような処理を 繰り返し行ないたい時に便利なものである。一回実行した一連の操作を、簡単 な操作で繰り返し行なうことが出来る。例えば、GNUSで、人の文章を引用する 時に、各行の先頭に``>>''というのをつけたい時がある。このような 時に、一行一行、``>>''をつけていっても良いが、結構面倒である。 そこで、キーボードマクロを使うと比較的簡単にできる。

キーボードマクロは、まず、
    C-x (
を打つ、それから定義したい一連の操作を行なう。この時、画面下方の反転し ている領域に、以下のように、Defという文字がある。これが、キーボー ドマクロを定義中であるという意味である。
[----]--**-Mule: file.c 3:31pm 0.08[0] (-JJ-:C Def)--All---------
この時にもその操作は有効であり、編集中のファイルはキー操作の通りに変更 される。一連の操作が終了したら、
    C-x )
を打つ。すると、先ほどのDefという表示が消える。これでキーボード マクロが定義された。これをもう一度実行するには、
    C-x e
である。

具体的な例をあげる。先ほどあげたように、ファイルの全行の先頭に ``>>''を入れたい場合、入れたい最初の行の先頭にカーソルを持って いき、以下のような手順で行なえば良い。

  C-x (     (キーボードマクロ定義開始)
>>(>>の入力)
C-a(カーソルを行頭へ)
C-n(カーソルを次の行へ)
C-x )(キーボードマクロ定義終了)

これによって、マクロ定義終了時に、カーソルは次の行の先頭にいる。このため、 繰り返して実行することによって、各行の先頭に``>>''が入る。 繰り返し実行に関しては、ESC 1 0 C-x eなどとすれば実行できる。

マクロ定義の注意点としては、マクロ定義中にC-gなど、ピッとなるよ うな操作を行なうと、マクロ定義が終わってしまうことがあげられる。マクロ を定義する際は注意して欲しい。また、いきなり繰り返し回数を指定して実行 すると、マクロ定義がうまくできていなかった場合に、ファイルがめちゃくちゃ に変更されてしまうことが予想されるので、数回、C-x eで、動作が 正しいかどうかをチェックしてから実行すべきであろう。


前[オンラインマニュアル]  次[漢字による検索]
戻る