数百件程度の改行区切りのデータをカンマ区切りにしたいとか,「文字列に対して簡単な処理を数十回/数百回実行したい,でもプログラムを書くほどでもない」というときはキーボードマクロが便利.
キーボードマクロとは一連のキーボード操作をコマンドに定義したもの.定義したコマンド(キーボードマクロ)は簡単に繰り返し実行ができる.
利用例
以下では改行区切りのデータをquoteしてカンマ区切りにする,という処理を例に説明する.
処理前
foo
bar
baz
...
処理後
'foo', 'bar', 'baz', ...
作業手順
- 適当なバッファ(scratchとか)に処理したい文字列を貼る(今回は
foo\nbar\nbaz
...) - 繰り返し実行したいキーボード処理を考える.今回ならば以下の作業で1行目(foo)の処理が終わる.(スタート時にカーソルは1行目の
f
にあるとする)
-
'
を入力 - C-eで行末に移動(カーソルは
o
に移動する) -
',
を入力 - C-dで改行を削除
- 2の処理をキーボードマクロに定義する.定義方法は簡単で,
C-x(
-> 定義したいキーボード処理を操作 ->C-x)
とするだけ. - 定義したマクロの実行は
C-xe
(execution).連続実行はC-xeeeee...
. - 大量に実行したい時は
C-u100C-xe
などとすればよい
他のキーバインドなど,詳細は GNU Emacsマニュアル: M. キーボードマクロ