多くのファイルのそれぞれについて、私がやりたいことは次のとおりです。
- のすべての出現箇所を検索して
<a hrefから、ブロック選択を開始します - の最初の出現まで選択します
> - 一致全体を小文字に変換します
多くのファイルのそれぞれについて、私がやりたいことは次のとおりです。
<a hrefから、ブロック選択を開始します>見てみな:
s/<a href\(\_[^>]*\)>/<a href\L\1>/
これは次のように言います:一致し、その後に改行(で示される)を含む<a href0個以上の文字が続き、最後に。これを、キャプチャされたテキストを小文字(で示される)に変換し、末尾を。に置き換えます。>\_><a href\L>
>タグの中にどこかにあるのなら、明らかにあなたはあなた自身ですが、それは人生です。
(そして、それが明確でない場合は、これをいくつかのより小さな範囲として、:%s/.../...または:<range>s/.../.../いくつかのより小さな範囲に使用します。)
これを複数のファイルで使用するには、、、、またはを使用しますwindo(bufdoファイルtabdoがタブ、ウィンドウ、または単にバッファーとして開いているかどうかによって異なります)。そこにはたくさんのドキュメントがあります:
一般的に、それはおそらく次のようになります。
:tabdo <range>s/.../.../
:windo <range>s/.../.../
:bufdo <range>s/.../.../ | w
現在のバッファを保存せずに次のバッファに移動できないため、bufdoバージョンに書き込みコマンドを追加しました。すぐに書きたい場合は、他の人にもこれを行うことができますが、それがなくても機能します。すべてのファイルを開くのはあなた次第です-最も簡単な方法はvim <lots of files>、それらをバッファとしてvim -o <lots of files>取得するか、ウィンドウとして取得することです(-O水平方向ではなく垂直方向に分割するために使用します)。