Vim のすべてのプロジェクト ファイルに対して検索と置換 (確認付き) を実行する最適な方法を探しています。「プロジェクト ファイル」とは、現在のディレクトリにあるファイルを意味します。その一部は開いている必要はありません。
これを行う 1 つの方法は、現在のディレクトリ内のすべてのファイルを単純に開くことです。
:args ./**
次に、開いているすべてのファイルに対して検索と置換を実行します。
:argdo %s/Search/Replace/gce
しかし、これを実行すると、Vim のメモリ使用量が数十 MB から 2 GB 以上に跳ね上がり、うまく機能しなくなります。
私もイージーグレッププラグインをインストールしましたが、ほとんど機能しません。すべての出現箇所が見つからないか、または を押すまでハングしますCtrlC。これまでのところ、このタスクを実行するための私のお気に入りの方法は、ack-grep検索用語については、クイックフィックス ウィンドウを使用して、その用語を含み、以前に開かれていないファイルを開き、最後に:bufdo %s/Search/Replace/gce
.
私は、これに使用できる優れた実用的なプラグイン、または現在使用しているものよりも簡単なコマンド/コマンド シーケンスを探しています。
ベストアンサー1
ここでのもう一つの大きな選択肢は、単に vim を使用しないことです。
sed -i 's/pattern/replacement/' <files>
または、ファイルのリストを生成する何らかの方法がある場合は、おそらく次のようになります。
find . -name *.cpp | xargs sed -i 's/pattern/replacement/'
grep -rl 'pattern1' | xargs sed -i 's/pattern2/replacement/'
等々!