Skip to content

第 7 章:Vim のマクロ

マクロは Vim(そしてほかのエディタ)における、少し高度なテーマです。ここまでの章を 身につけたなら、すでに Vim を十分使いこなしています。さらに一段進みましょう。

前の章でテキストを配列に変換した例を覚えていますか。今度は同じ 処理をマクロで行います。

14gg で処理開始行へジャンプし、指示に従ってください。まず結果を確認し、 その後で仕組みを説明します。

javascript
var myArray = [
qa でマクロ記録を開始し、I<single quote><Esc>A<single quote><comma><Esc>jq7@a と入力
私も
私も
私も
私も
私も
私も
私も
];

何が起きたのでしょう。一瞬で前章の二つのブロック操作と同じ結果になりました。 最後の行末にあるカンマを削除し、全体をインデントすれば完成です。

先ほどの操作を説明します。

  • q でマクロ記録を開始し、a で記録先を指定します。記録先には 0–9 または a–z を使用できます
  • I<single quote><Esc>A<single quote><comma><Esc>j が記録した一連の操作です。 行頭にシングルクォートを挿入し、行末にシングルクォートとカンマを挿入して、 次の行へ移動します
  • 続けて q を押すとマクロ記録を終了します
  • @ はマクロを呼び出し、a は呼び出すマクロの名前(記録先)です。先頭の 7 は この操作を 7 回実行することを意味します

ヒント:@@ を押すと、最後に実行したマクロをもう一度呼び出します。


これで Vim の基本操作は一通り完了です。しかし Vim を本当に自在に扱うには、さらに いくつかの「内功」を学ぶ価値があります。編集範囲を正確に選ぶテキストオブジェクト、 コピーと貼り付けを制御するレジスタ、コード内に足跡を残すマークとジャンプ、そして 複数ファイルの一括操作です。次の章から順に学びます。

次の章ではテキストオブジェクトを紹介します。