Vimですべてのプロジェクトファイルを検索および置換する 質問する

Vimですべてのプロジェクトファイルを検索および置換する 質問する

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/'

等々!

おすすめ記事