Sie führen könnte vimgrep dann ein Makro aufzeichnen, die in der vimgrep Ausgang jeder Zeile geht und nicht das ersetzen, so etwas wie folgt aus: (! Art in den # Kommentare nicht)
:set autowrite #automatically save the file when we change buffers
:vimgrep /pattern/ ./**/files
qa #start recording macro in register a
:s/pattern/replace/g #replace on the current line
:cnext #go to next matching line
q #stop recording
[email protected] #repeat the macro 10000 times, or until stopped by
#an "error" such as reaching the end of the list
:set noautowrite
habe ich nicht getestet es, so dass es ein wenig zwicken müssen - testen Sie es auf einige Dateien, die Sie nichts dagegen haben, zuerst versaut.
Der Vorteil dieser über sed ist, dass Vim Regex leistungsfähiger sind, und Sie können die Option c hinzufügen, um: s, um jeden Ersatz zu überprüfen.
Bearbeiten: Ich habe meinen ursprünglichen Beitrag geändert, da es falsch war. Ich verwendete: 1vimgrep, um die erste Übereinstimmung in jeder Datei zu finden, aber ich habe die Dokumente falsch gelesen - es findet nur eine Übereinstimmung über alle Dateien.
[Hier] (http: // stackoverflow.com/a/13944042/834176) ist eine Möglichkeit, rekursiv zu suchen und zu ersetzen, aber nur bei Dateien unter Versionskontrolle (es könnte einfach verallgemeinert werden, wenn Sie wirklich * alle * Dateien in einem Verzeichnis durchsuchen wollen). –