Volt
00000000

Anleitung

Suchen und Ersetzen in mehreren Dateien auf dem Mac

Etwas im ganzen Projekt umzubenennen ist im Terminal ein Befehl — und einen Fehler davon entfernt, Dateien umzuschreiben, die Sie nicht anfassen wollten. Hier stehen der Befehl, was damit schiefgeht, und wie Sie dasselbe tun, wo Sie es vorher sehen.

Im Terminal

grep -rl 'alterName' src listet die Dateien, die ihn enthalten. Weitergereicht an xargs sed -i '' 's/alterName/neuerName/g' ersetzt es ihn überall — beachten Sie das leere '' nach -i, das das sed auf dem Mac braucht und das unter Linux nicht.

Was es nicht tut, ist Ihnen vorher etwas zu zeigen. Es schreibt klaglos eine Binärdatei um, eine Datei in einem Build-Ordner, eine Datei in einem anderen Zeichensatz, die es dabei beschädigt, oder eine Datei, die Sie mit ungesicherten Änderungen in einem Editor offen haben — der sie dann darüber sichert.

In Volt

Im Projekt suchen (⇧⌘F) lässt die Suche der Suchleiste — wörtlich oder als regulärer Ausdruck, mit Groß-/Kleinschreibung, ganzen Wörtern — über jede Datei des Projekts laufen, mit den Ergebnissen in einer klickbaren Liste, jede Zeile mit dem Namen ihrer Datei davor.

Im Projekt ersetzen (⇧⌘H) sucht zuerst und sagt, wie viele Treffer in wie vielen Dateien es gefunden hat, und schreibt erst dann. Eine Datei, die in einem Fenster offen ist, wird nie hinter ihrem Rücken geschrieben: Die Änderung geschieht im Fenster, als Bearbeitung, die Sie widerrufen und sichern können. Geschlossene Dateien werden so geschrieben, wie Sichern sie schreibt — Zeichensatz, Bytereihenfolge-Markierung und Zeilenenden bleiben erhalten. Binärdateien werden abgelehnt.

Nur die Dateien, die Sie meinen. „Dateifilter…“ nimmt Ein- und Ausschlusslisten in den Mustern, die Sie kennen — *.swift, Sources/, *.{js,ts} —, und das Ersetzen hält sich an denselben Filter wie die Suche. In einem Git-Repository ist das Projekt das, was Git sagt, also entscheidet .gitignore, und der Build-Ordner bleibt unberührt.

Ersetzungen mit mehr dahinter

  • Reguläre Ausdrücke mit $1 in der Ersetzung, und \n, \t für die Zeichen, die sie bezeichnen.
  • Schreibweise beim Ersetzen erhalten: wort wird zu name, WORT zu NAME, Wort zu Name.
  • Strukturelle Suche — Code mit Löchern darin: print(:[x]) findet jeden Aufruf, wie lang sein Argument auch ist, und log(:[x]) setzt ihn umbenannt zurück.
  • Mehrfach ersetzen … — eine ganze Liste von Paaren, wie eine Tabellenkalkulation sie beim Kopieren zweier Spalten liefert, über jedes offene Dokument auf einmal, mit Zählung vorab.
  • In geöffneten Dokumenten suchen (⌥⌘F) — jedes Fenster, wie es gerade ist, ungesicherter Text eingeschlossen.

Fragen

Wie suche und ersetze ich auf dem Mac in mehreren Dateien?

Im Terminal findet grep -rl die Dateien, und sed -i '' ersetzt darin. In Volt zählt „Im Projekt ersetzen“ (⇧⌘H) zuerst Treffer und Dateien und schreibt dann.

Kann ich es auf bestimmte Dateien beschränken?

Ja. „Dateifilter…“ nimmt Ein- und Ausschlussmuster wie *.swift oder Sources/, und das Ersetzen verwendet denselben Filter wie die Suche.

Was passiert mit Dateien, die ich offen habe?

Sie werden in ihren Fenstern geändert, als Bearbeitungen, die Sie widerrufen und sichern können — nie hinter Ihrem Rücken geschrieben.

Unterstützt es reguläre Ausdrücke?

Ja, mit $1-Gruppen in der Ersetzung, Groß-/Kleinschreibung, ganzen Wörtern, und \n und \t in beiden Feldern.

Beschädigt es Dateien in anderen Kodierungen?

Nein. Dateien werden so geschrieben, wie Sichern sie schreibt — Zeichensatz, Bytereihenfolge-Markierung und Zeilenenden bleiben —, und Binärdateien werden abgelehnt.

Benennen Sie etwas im ganzen Projekt um

Volt ist in der kostenlosen Beta. Laden Sie ihn jetzt — ohne Konto, ohne Anmeldung — und probieren Sie ihn an der Datei aus, um die es geht. Jeder Build läuft sieben Tage, und jedes Update gibt weitere sieben.

Volt für Mac laden

macOS 13 oder neuer, Apple Silicon. Etwa 8 MB, signiert und notarisiert. Alle Funktionen · was sich in diesem Build geändert hat.

Verwandte Anleitungen