8

多くのファイルのそれぞれについて、私がやりたいことは次のとおりです。

  • のすべての出現箇所を検索して<a hrefから、ブロック選択を開始します
  • の最初の出現まで選択します>
  • 一致全体を小文字に変換します
4

1 に答える 1

15

見てみな:

s/<a href\(\_[^>]*\)>/<a href\L\1>/

これは次のように言います:一致し、その後に改行(で示される)を含む<a href0個以上の文字が続き、最後に。これを、キャプチャされたテキストを小文字(で示される)に変換し、末尾を。に置き換えます。>\_><a href\L>

>タグの中にどこかにあるのなら、明らかにあなたはあなた自身ですが、それは人生です。

(そして、それが明確でない場合は、これをいくつかのより小さな範囲として、:%s/.../...または:<range>s/.../.../いくつかのより小さな範囲に使用します。)

これを複数のファイルで使用するには、、、、またはを使用しますwindobufdoファイルtabdoがタブ、ウィンドウ、または単にバッファーとして開いているかどうかによって異なります)。そこにはたくさんのドキュメントがあります:

一般的に、それはおそらく次のようになります。

:tabdo <range>s/.../.../
:windo <range>s/.../.../
:bufdo <range>s/.../.../ | w

現在のバッファを保存せずに次のバッファに移動できないため、bufdoバージョンに書き込みコマンドを追加しました。すぐに書きたい場合は、他の人にもこれを行うことができますが、それがなくても機能します。すべてのファイルを開くのはあなた次第です-最も簡単な方法はvim <lots of files>、それらをバッファとしてvim -o <lots of files>取得するか、ウィンドウとして取得することです(-O水平方向ではなく垂直方向に分割するために使用します)。

于 2010-05-18T15:14:11.240 に答える