Help us understand the problem. What is going on with this article?

vim置換

More than 1 year has passed since last update.

置換

:%s/置換前/置換後/

これだと一行中で一番初めに当たったものしか置換されないので

:%s/置換前/置換後/g

とすると1行中に複数マッチしても置換されます。

頭に%と置くと今開いているファイルという意味になるので

:1,100s/置換前/置換後/g

とすると1行から100行までと行を指定できます。
置換したい範囲をビジュアルモードで選択した後 : を打つと選択範囲ないを指定することもできます。

置換前の文字を流用

:%s/\(文字\)/h(\1)/

とかすると\(\)内にある文字が流用でき

 h(文字)

と言うように置換されます。

:%s/\(\) \(\) \(\)//

のように複数 \\(\\) があると、左から順に \\1 \\2 \\3 となります。

最小一致

vimの正規表現は最大一致になっています。

:%s/<.\{-}>//

とすると最小一致で文字を置換できます。
上の場合だと < > で括られているものが削除されます。

最小一致なので、上の場合だと

<input value="<?php echo $aa; ?>" type="text" name="aa" id="text">

のようなものがあった場合

<input value="<?php echo $aa; ?>

までが判定されます。
結果

" type="text" name="aa" id="text">

が残ります。

waoooon
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away