vim マクロ
vimのドットコマンドはちょっとした変更を繰り返すのに使えました。
しかし、もっとたくさんの変更を繰り返す場合にはドットコマンドでは足りないです。
そこで、マクロを使うことによっていくつもキーストロークを保存し、繰り返すことができます。
使い方
マクロの記録
「q
キー + 任意のアルファベット(数字も?)」 でマクロの記録を開始します。
ステータス行に「recording」(「記録中」)と表示されたら、記録が開始しています。
記録を終了するにはもう一度q
キーを押します。
例
行末にセミコロン、行頭にvar
をつけるマクロを記録してみます。
コマンド | 説明 |
---|---|
qa | マクロの記録を開始 |
A;<Esc> | 行末にセミコロンを挿入 |
Ivar <Esc> | 行頭にvar の挿入 |
q | 記録の終了 |
記録の確認
:reg
で記録されているマクロの確認ができます。
:reg a
とするとqa
で記録したものが確認できます。
見え辛いですね、、
:reg a
--- レジスタ ---
"a A;^[Ivar ^[
※<Esc>
キーは^[
で表現されています
マクロの実行
「@
キー + 記録したアルファベット」でマクロを実行する。@@
キーで直前に呼び出されたマクロを繰り返します。
例
行末にセミコロン、行頭にvar
をつけるマクロの実行。
コマンド | 説明 |
---|---|
j | 1行下に移動 |
@a | マクロの実行 |
j | 1行下に移動 |
@@ | 直前に呼び出したマクロの実行 |
インクリメントするマクロ
コマンド | 説明 |
---|---|
qa | マクロの記録を開始 |
yy | 1行コピー |
P | カーソルの下の行にペースト |
<Ctrl-a> | インクリメント |
q | 記録の終了 |
--- | --- |
@a | マクロの実行 |
@@ | 直前に呼び出したマクロの実行 |
まとめ
コマンド | 説明 |
---|---|
q{任意のアルファベット} | マクロの記録を開始 |
q | 記録の終了 |
@{記録したアルファベット} | マクロの実行 |
@@ | 直前に呼び出したマクロの実行 |