Vimマクロ、知らんかったけど、カンタンだったよ、という話
たとえば
<ahref="/hogehoge/#FUGA_xxx">↓
<ahref="/hogehoge/xxx.html">
に変換したいとする。
これが50個くらいある。
変換したくない箇所もところどころあるし。
50個くらいなら手でやってしまうか?
そんなとき、Vimマクロ。
チョー簡単です。
①#FUGA
を消すのは、#
にカーソルをあわせてdf_
で消せる。
②
そのあと.html
は
一回w
を押してxxx
の末尾に移動したあとi
して.html
を手入力ESCすればいい。
③
あらかじめ\/hogehoge\/
を/検索して、wwl
とかやれば、カーソル移動もできる
n
で移動すれば、次も確認しながらイケる。
この①②③を
マクロで記録してしまおう
マクロ記録開始
qa
(aじゃなくても、a〜zまでの文字ならなんでもいいはず)
(recordingとか表示される)
マクロ記録
①②③をやって
1行処理する
マクロ記録終了
q
マクロ実行
@a
(aじゃなくても、a〜zまでの文字なら、対応するマクロが実行されるはず)
マクロ内にn
を入れてしまったので
マクロ終了時、次の変換候補場所に移動してくれる。
あとは@a
押してくだけ
直前のマクロを実行
@@
というキーバインドも用意されているので
目視しながら
@@ @@ @@ @@ @@ @@ @@ @@ @@
・・・
と連打していくだけ。
変換したくない場所は箇所はn
で次の候補へ移動すればOK。
(確認するまでもないなら100@q
とかもできる)
まるで、
Vimという部下に一回、手順操作を見せてあげたあと、
あと同じようにやっておいて、
って言うような気軽さ。
クッソ便利で
なんで今までコレ活用しなかったのか、と
頭を抱えるレベルなので
みんなVim初心者に教えてあげよう。
おまけ
ヤンクしてデリートして、
デリートした内容じゃなくてヤンクした内容を貼りたいときは"0p
でいける
マクロの中身を確認する
マクロはずっと保存されるっぽい。
:reg
でなんか見れる
特にqwとかでやりがちなwには
パニック時の操作が記録されてるかも(笑)
マクロの消し方
qa q
とかで、何もしないを上書きしちゃうのが覚えやすいか。
nを先にするかあとにするか
nを先にすると、@@した瞬間、変換した箇所が表示されるので
それで問題ないか目視する。
シンタックスハイライトで、なんか壊れてないか確認できる。
nを前にすると、変換する前に、
そこを書き換えて大丈夫か目視する。
nをあとにすると、別ファイルを開いた時とかに
nを押し忘れると、文頭が壊れちゃうので注意。
nを押してから@@する
どっちでもいいんだけど、
どっちを多様するか決めておいた方が混乱しなくてすみそう。