Verhindern Sie, dass Visual Studio Zeilenenden in Dateien mischt


123

Wenn Sie eine textbasierte Datei in Visual Studio 2010 öffnen, werden meine Änderungen mit CRLF anstelle des Zeilenendformats der Originaldatei geschrieben. Wie kann ich VS davon abhalten? Jeder halbwegs anständige Editor sollte diese Fähigkeit haben.

Schlimmer ist, dass VS die Datei mit Teilen in CRLF geschrieben hat und dann (beim erneuten Öffnen der Datei) einen Dialog anzeigt, in dem ich aufgefordert werde, das Zeilenende der Dateien zu konvertieren.


Versuchen Sie dieses Add-In: Strip'em
macht

8
Vielleicht möchten Sie dafür stimmen: visualstudio.uservoice.com/forums/121579-visual-studio/…
Jon Watte

1
@ JonWatte derzeit überprüft am 28. April 2016
Chris Marisic

2
Ich bin in diesen Tagen von .NET weggezogen, habe es zu satt, dass MS scheinbar jede Saison den Fokus wechselt und einfache Probleme wie diese vernachlässigt. Ich bin froh zu sehen, dass sie es endlich reparieren.
Brett Ryan

Antworten:


84

Wählen Sie im Menü Datei die Option Erweiterte Speicheroptionen , die Sie dort steuern können.

Bearbeiten: Hier ist die Dokumentation , Sie sollten zuerst eine Datei geöffnet haben.


5
Ich habe diesen Menüpunkt bei meiner ultimativen VS2010-Installation nicht.
Palantir

6
Ich habe diese Einstellung in VS2010 Ultimate, diese Option ist jedoch keine globale dauerhafte Option und gilt nur für die aktuelle Editorsitzung. Ich möchte nur, dass VS beim Bearbeiten der Datei die aktuell geöffneten Zeilenenden der Dateien berücksichtigt.
Brett Ryan

2
Datei + Speichern unter, klicken Sie auf den Pfeil auf der Schaltfläche Speichern. Das Gleiche, aber spezifisch für die Datei.
Hans Passant

13
Für diejenigen , die den Befehl im nicht sehen , FileMenü, Sie müssen gehen können Tools, Customize, CommandsRegisterkarte Menu Bar: File, Add Command..., File, Advanced Save Options..., Ok, Close. Jetzt sollten Sie die Option haben.
Davidg

92
Dies löst das Problem nicht wirklich, da Sie diese Option jedes Mal auswählen müssen, wenn Sie sparen. Dies bedeutet auch, dass Sie bei jedem Speichern eine Option zum Beenden von Zeilen auswählen müssen. Das richtige Verhalten, das jeder andere Texteditor unterstützt, besteht darin, das Format beim Laden zu erkennen und beim Speichern in diesem Format zu speichern. Es gibt keine Möglichkeit, VS2010 dazu zu bringen, dieses AFAICT durchzuführen, und das ist eine Schande.
Jon Watte

70

Überprüfen Sie in Visual Studio 2015 (dies gilt noch für 2019 für denselben Wert) die Einstellung:

Extras> Optionen> Umgebung> Dokumente> Überprüfen Sie beim Laden, ob die Zeilenenden konsistent sind

VS2015 fordert Sie nun auf, Zeilenenden zu konvertieren, wenn Sie eine Datei öffnen, in der sie inkonsistent sind. Sie müssen also nur die Dateien öffnen, die gewünschte Option an der Eingabeaufforderung auswählen und sie erneut speichern.


4
Dies kann jetzt hilfreich sein. Beachten Sie jedoch, dass die Frage mit dem Tag visual-studio-2010 versehen wurde .
Dakab

4
Das Problem mit dieser Option ist, dass sie Ihnen nicht sagt, welche Zeilenenden im Dokument am häufigsten vorkommen. Daher muss ich das Dokument zuerst in Notepad ++ öffnen und dann nur die richtige Option auswählen. Außerdem ist dies ein Speicherproblem, kein Ladeproblem.
Strategie-Denker

3
Das Problem, das ich hatte, war, dass ich Dateien mit LF-Endungen öffnete und dann jede Zeile, die ich bearbeitete oder hinzufügte, mit CR-LF-Endungen gespeichert wurde. Wenn ich die Datei erneut öffnete, wurde ich gefragt, in was ich die inkonsistenten Zeilenenden ändern wollte, und ich würde LF auswählen und dann den Vorgang wiederholen. Hier ist, wie ich es gelöst habe: stackoverflow.com/a/47318778/2701911
FragmentalStew

Das Problem beim Einfügen eines Textes mit gemischten Zeilenenden wird dadurch nicht behoben. Sie müssen die Datei erneut öffnen, um die Prüfung auszulösen.
Andry

22

Mit VS2010 + gibt es eine Plugin-Lösung: Line Endings Unifier .

Wenn das Plugin installiert ist, können Sie im Solution Explorer mit der rechten Maustaste auf Dateien und Ordner klicken und den Menüpunkt aufrufen Unify Line Endings in this file

Die Konfiguration hierfür ist über verfügbar

Extras -> Optionen -> Line Endings Unifier.

Die Standardliste für Dateierweiterungen, die enthalten ist, ist ziemlich eng:

 .cpp; .c; .h; .hpp; .cs; .js; .vb; .txt;

Vielleicht möchten Sie etwas verwenden wie:

 .cpp; .c; .h; .hpp; .cs; .js; .vb; .txt; .scss; .coffee; .ts; .jsx; .markdown; .config

11
Dies ist eigentlich ein Plugin und nicht standardmäßig installiert.
null

1
@null danke für den Hinweis, dass dies eigentlich das ist, wonach ich gesucht habe. Ich habe die Antwort aktualisiert, um all dies besser widerzuspiegeln
Chris Marisic

11

Siehe http://editorconfig.org und https://docs.microsoft.com/en-us/visualstudio/ide/create-portable-custom-editor-options?view=vs-2017

  1. Wenn es nicht vorhanden ist, fügen Sie eine neue Datei mit dem Namen .editorconfig für Ihr Projekt hinzu

  2. Bearbeiten Sie die Editor-Konfiguration, um Ihr bevorzugtes Verhalten zu verwenden.

Ich bevorzuge Leerzeichen gegenüber Tabulatoren und CRLF für alle Codedateien.
Hier ist meine .editorconfig

# http://editorconfig.org
root = true

[*]
indent_style = space
indent_size = 4
end_of_line = crlf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[*.tmpl.html]
indent_size = 4

[*.scss]
indent_size = 2 
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.