search
LoginSignup
356

More than 3 years have passed since last update.

posted at

updated at

vim置換

置換

:%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">

が残ります。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
356