キーの一連の操作を記録して実行できる機能(マクロのようなもの)
記録を開始する
q
+ ${0-9a-zA-Z"} : 記録状態になりタイプした文字をレジスタに記録する
記録を終了する
q
: 記録状態を解除する(記録の終了)
記録を実行する
@
+ ${0-9a-z".=*+} : レジスタの内容を実行する。3@a
のように前に数字をつけることで、複数回連続して実行もできる
注意点!!
レジスタに登録するため、ヤンクなどで同じレジスタを使用すると上書きされてしまう。
どのレジスタを何に使うかなどは考えながら使おう
【使用例】
各行に同じ操作を行いたい時
foo#<=ここの行頭にカーソル(normalモード)barbazqux
qa
: aレジスタでレコーディング開始
0
: 行頭に移動v
: ビジュアルモードe
: 単語の末に移動y
: ヤンク<S-i>
: 行頭から挿入モードdef
: 文字を挿入<C-[
: 挿入モードを抜けるo
: 1行追加し挿入モードp "
: 文字を挿入<C-r>"
: 無名レジスタの内容を貼り付け<C-[
: 挿入モードを抜けるend
: 文字の挿入<C-[
: 挿入モードを抜ける
q
: レコーディング終了
deffoop"foo"end#<=カーソルここの行末barbazqux
j
: 次の行に移動@a
: aレジスタに記録した内容を実行
deffoop"foo"enddefbarp"bar"end#<=カーソルここの行末bazqux
j
: 次の行に移動@@
: 前回と同じ記録を実行j
: 次の行に移動@@
: 前回と同じ記録を実行
deffoop"foo"enddefbarp"bar"enddefbazp"baz"enddefquxp"qux"end