LoginSignup
462
371

More than 3 years have passed since last update.

vim置換

Last updated at Posted at 2014-07-18

置換

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

が残ります。

462
371
2

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
  3. You can use dark theme
What you can do with signing up
462
371