Vimの一括置換時に '継続' 表示で処理を止めない方法
目的
多くの(正確な数は不明)ファイルを対象に文字列の一括置換をする。
:args **/*.vala :argdo %s/foo/bar/g
すると途中で '継続' と表示され、処理が一時停止。 Space、Enter、PageDown等を押下し、逐次処理を進めなければならなくなる。 処理を一時停止することなく、全ファイルの一括置換を一発で済ませたい。
情報元
http://d.hatena.ne.jp/h_primula/20100726 のコメントでthincaさんが回答されている。
解決方法1: sコマンドにeフラグを付与
:args **/*.vala :argdo %s/foo/bar/ge
なおeフラグは
検索パターンが何もマッチしなかったとき、エラーメッセージを表示しない。
という意味。http://vim-jp.org/vimdoc-ja/change.html
'継続' と表示され処理が一時停止してしまうのは、指定パターンがファイル内で見つからない時のようだ。
解決方法2: '継続'表示時にGを入力
'継続'表示時にG (Shift+g) を入力すると、一時停止した処理を最後まで継続してくれる。
参考
argdo
を使用しない複数ファイル内の文字列置換方法がvimのマニュアルに載っていた。
そこではeフラグ(解決方法1)を使用していた。