vim ちょっとした繰り返し

使い捨てのちょっとした繰り返し作業は、レジスタにマクロを保存すると楽。 q{register}で保存開始。qで終了。@{regiser}で呼び出し。

たとえば、.erbファイル編集中、コマンドを<%= %>で囲みたいとする。

qaI<%= <ESC>A %><ESC>q

I<%= <ESC>A %><ESC>レジスタaに記録できる。

puts 123
puts 456

の1行目で@aを入力すると、

<%= puts 123 %>
puts 456

となる。2行目を囲むには、2行目でまた@aとしてもよいが、直前のマクロは@@で再実行できる。少しだけ楽。なので2行目は@@と入力。

<%= puts 123 %>
<%= puts 456 %>

レジスタを使ったマクロは以上。

その場だけでなく、今後も使いたいマクロはにmapしたほうがいいかも。

nnoremap <leader>a I<%= <ESC>A %><ESC>

自分は上のように設定している。\aで呼び出せる。