アインシュタインの電話番号
2010.11.30
VimでGrepと一括置換

VimでGrepと一括置換するコマンドをすぐ忘れる。

Grep

:vimgrep /hoge/j **/*.txt | cw
  • jオプションは最初のマッチを自動で開かない
  • cwは検索結果をQuickfixに表示
  • Quickfixウィンドウは:cnでマッチした次の行へ、:cpで前の行に戻る

一括置換

:args *.txt
:args
:argdo %s/hoge/fuga/g | update
  1. 対象ファイルを登録、サブディレクトリも対象にする場合は**/*.txt
  2. 1行目で登録されたファイルを表示して確認(やらなくてもOK)
  3. 単体ファイル対象の置換と同じ感じでargdoする、updateは変更のあったファイルのみ保存するコマンド

Vimで複数ファイルを纏めて編集する - Archiva