Batch-Zeilenumbrüche in Visual Studio normalisieren

8

Wenn Sie eine Datei mit gemischten Zeilenenden öffnen, fordert Visual Studio Sie auf, sie zu normalisieren. Gibt es eine Möglichkeit, alle Dateien in der aktuellen Lösung zu normalisieren?

Verwandte Beiträge, die meine Frage nicht beantworten:

Borek 20.02.2012, 18:53
quelle

4 Antworten

2

Visual Studio verfügt nicht über einen Mechanismus zum Normalisieren von Zeilenenden für eine gesamte Lösung. Die Funktion beschränkt sich im Wesentlichen darauf, zu prüfen, ob eine Datei beim Öffnen und Ändern an diesem Punkt korrekt ist.

Die Normalisierung der Zeilenenden ist jedoch eine API, die von Visual Studio in IEditorOperations::NormalizeLineEndings bereitgestellt wird. Daher ist es möglich, ein Plugin / Skript zu schreiben, das die Aktion gegen Objekte in der Lösung durchführt.

    
JaredPar 20.02.2012, 18:56
quelle
5

Sie können eine Fledermausdatei erstellen, die alle Dateien rekursiv normalisiert.

  1. Laden Sie das Befehlszeilenwerkzeug Tofrodos herunter.
  2. Erstellen Sie eine Bat-Datei im Stammverzeichnis Ihres Lösungsverzeichnisses mit folgendem Inhalt:
  

für / R %% i in (* .cs) tun Sie "C: \ Prgs \ Tofrodos \ todos.exe" -p "%% i"

Beachten Sie, dass Sie den Dateipfad auf todos.exe und möglicherweise den Filter * .cs aktualisieren müssen.

Dann führst du die bat-Datei aus und wartest, bis sie beendet ist.

    
salle55 12.11.2012 21:14
quelle
2

Wie yellowblood in der Antwort von Aaron F. darauf hinweist, dass Sie \n (LF) durch \r\n (CRLF) ersetzen, haben Sie eine schlechte Zeit, da vor jedem LF ein CR hinzugefügt wird, auch solche das hatte schon eins.

Was Sie jedoch erreichen wollen, können Sie mit regulären Ausdrücken erreichen, indem Sie einen Texteditor verwenden, der Batch-Ersetzen in Dateien unterstützt (wie Notepad ++ oder Visual Studio's "In Dateien ersetzen").

Um beispielsweise LF durch CRLF zu ersetzen, stellen Sie sicher, dass Sie die Regex-Option aktivieren und dann alle Vorkommen von

ersetzen %Vor%

mit

%Vor%

\r ist ein Wagenrücklauf (CR), \n ist ein Zeilenvorschub (LF). Das Muster (?<!\r)\n wird mit jedem Zeilenvorschub übereinstimmen, dessen vorheriges Zeichen kein Wagenrücklauf ist, ohne dieses vorherige Zeichen einzufangen (d. H. Zu ersetzen).

Andersherum ist es viel einfacher: Ersetzen Sie einfach \r\n durch \n .

Sichern Sie wie immer Ihre Dateien und vergewissern Sie sich, dass Sie den Vorgang in einer einzigen Datei testen, bevor Sie die gesamte Lösung bearbeiten.

Ich hätte dies als Kommentar zu Aaron F.'s Antwort hinzugefügt, aber mein Ruf ist nicht hoch genug:)

    
plgod 10.11.2016 13:15
quelle
1

Ich habe gerade Notepad ++ gefunden und ersetzt Feature:

  1. Legen Sie NotePad ++ so fest, dass Zeilenenden, Ansichts- & gt; Symbole anzeigen - & gt; Zeige alle Charaktere
  2. Öffnen Sie den Dialog Suchen in Dateien
  3. set find was zu \ r \ n (oder \ n) abhängig davon, welche Coversion du gerade machst
  4. set ersetzen durch mit \ n (oder \ r \ n)
  5. Zeigen Sie auf das Verzeichnis in Ihrem Lösungsordner

Sie sollten Ihre Änderungen sichern oder übernehmen, bevor Sie dies tun

    
Aaron F. 19.08.2015 16:27
quelle

Tags und Links