Wie kann ich verhindern, dass „Sie Tabulatoren und Leerzeichen gemischt haben? Repariere das?" Botschaft?

155

Jedes Mal, wenn ich Code in meine CS-Datei einfüge, wird das gefürchtete "Sie haben gemischte Tabulatoren und Leerzeichen. Beheben Sie das?" Botschaft. Es gibt drei Möglichkeiten:

Tabify
Untabify
Don't show again

Ich habe zuerst ein paar Mal "Tabify" ausprobiert, bis ich endlich die Nase voll hatte und "Nicht mehr anzeigen" auswählte. aber das war eine Psyche - ich verstehe es immer noch. Ich habe sogar "Untabify" ausprobiert, aber ohne Erfolg. Gibt es eine Einstellung, die ich anpassen kann, um dieses Problem zu vermeiden?

VisualStudio2013 tabify untabify

B. Clay Shannon
quelle
Haben Sie Ihre Datei zwischen dem Zeitpunkt, zu dem Sie "Nicht mehr anzeigen" ausgewählt haben, und dem Zeitpunkt, zu dem die Nachricht erneut aufgetreten ist, bearbeitet? Ist es möglich, dass Sie aufgrund Ihrer Änderungen eine neue Situation mit "gemischten Tabulatoren und Leerzeichen" erstellt haben?
David K
Es ist möglich, aber ich mache nichts anderes als immer und bekomme diese Nachricht nur mit diesem Projekt / dieser Umgebung (VS 2013).
B. Clay Shannon
1
Ich vermute, dass dies wirklich nur eine VS2013-Sache ist, da ich häufig auf Dateien mit gemischten Tabulatoren und Leerzeichen gestoßen bin und die von mir verwendeten Versionen von Visual Studio (einige davon alle vor 2013) sich nie darüber beschwert haben.
David K
2
Genau das gleiche Problem in VS2012
taz

Antworten:

252

Klingt so, als hätten Sie die Visual Studio Productivity Power Tools 2013 installiert. Gehen Sie in die Einstellungen und deaktivieren Sie "Mixed Tabs reparieren" ...

Tools -> Options -> Productivity Power Tools -> Turn Extensions On/Off

Wenn Sie die Standard-VS-Einstellungen haben, werden Registerkarten im Editor in Leerzeichen konvertiert. Wenn Sie also (theoretisch) beim Aufrufen der Nachricht auf "Untabify" geklickt haben, sollten alle Registerkarten in Leerzeichen konvertiert werden und die Fehler sollten beim nächsten Mal nicht angezeigt werden. Arbeiten Sie mit anderen Entwicklern zusammen, deren IDE andere Registerkarteneinstellungen hat?

UPDATE: In Visual Studio 2017 und höher ist dies eine eigenständige Erweiterung mit dem Namen "Fix Mixed Tabs", die im Fenster "Erweiterungen und Updates" (Extras> Erweiterungen und Updates) deaktiviert oder deinstalliert werden kann.

Geben Sie hier die Bildbeschreibung ein

Anthony Chu
quelle
Nein, ich bin der einzige, der an diesem Projekt arbeitet. Es befindet sich nicht in der Quellcodeverwaltung (ich verwende nur ein Add-In, mit dem ich "Projekte sichern" kann, wann immer ich möchte, und es wird in einer ZIP-Datei gespeichert)
B. Clay Shannon
1
LOL ... Für das, was es wert ist, habe ich einfach die Einstellung aktiviert, mit Notepad eine Reihe von Registerkarten in meine Datei eingefügt und dann die Eingabeaufforderung erhalten. Wenn Sie auf "Aufheben" klicken, werden alle Registerkarten in Leerzeichen umgewandelt, und ich erhalte die Nachricht für diese Datei nicht erneut.
Anthony Chu
Nachdem mich dieses "Produktivitäts-Tool" ein paar Stunden Debugging gekostet hat, wird es ausgeschaltet. Es "fixierte" ein Leerzeichen zwischen Klassen und änderte es in eine Registerkarte, die aufgrund der Art und Weise, wie die Dinge angeordnet waren, wie ein Leerzeichen aussah. Natürlich diese Klasse auswählen ? Unmöglich, da es "classA [tab] classB" war.
David T. Macknet
8
Dies muss jetzt für VS2017 aktualisiert werden. Wie sich herausstellt, ist dies eine eigene Erweiterung, die jetzt deaktiviert werden kann
Joe Phillips
@ JoePhillips hast du etwas darüber für VS2017 herausgefunden? Ich habe die Erweiterung sogar deinstalliert , aber trotzdem die nervige Nachricht erhalten. (Übrigens: Die Einstellungen für die Erweiterung werden nach der Deinstallation und dem Neustart immer noch im Fenster vs settings angezeigt.)
René Vogt
74

Update für Visual Studio 2017. Wenn Sie die Option "Sie haben gemischte Tabulatoren und Leerzeichen. Beheben Sie dies?" Deaktivieren möchten. Nachricht, sollten Sie gehen

Tools → Erweiterungen und Updates…

Suchen Sie in Fenstern, die angezeigt wurden, Fix Mixed Tabs (Bild unten) und klicken Sie entweder auf Deaktivieren oder Deinstallieren, je nachdem, was Sie möchten.

Gemischte Registerkarten deaktivieren

Milan Leškanič
quelle
3
Ich wünschte, es würde es einfach automatisch tun. Ich habe den Texteditor so eingestellt, dass Tabulatoren anstelle von Leerzeichen verwendet werden. Wenn ich jedoch zu einer neuen Zeile gehe, wird der Einzug als Leerzeichen festgelegt.
Sinjai
1
Funktioniert auch für Visual Studio 2019.
Userom
3
Für VS 2019 ist es " Erweiterungen → Erweiterungen verwalten ".
Uwe Keim
13

Verwandte Themen: Wenn Sie möchten, dass Productivity Power Tools Sie über Tabulatoren / Leerzeichen benachrichtigt, die Meldung jedoch direkt nach dem Klicken auf Fix this angezeigt wird, klicken Sie auf Extras > Optionen> Texteditor> [Sprache]> Registerkarten.

Stellen Sie dies auf Keep tabs ein

Wenn Sie die Option "Leerzeichen einfügen" aktiviert haben und in der Power Tools-Benachrichtigung auf " Tabulatoren behalten" klicken, fügt VS nach dem Speichern Leerzeichen wieder ein, sodass die Benachrichtigung sofort wieder angezeigt wird ... und jetzt stecken Sie in einer Schleife fest.

Koert van Kleef
quelle
3

Datei mit vim run bearbeiten: retab und speichern Sie die Datei und es ist fertig!

vim file 
:retab
:wq

Mit: retab können Sie alle Registerkarten in Leerzeichen konvertieren. Wenn Sie expandtab (: set expandtab) festlegen, bedeutet dies, dass alle Registerkarten in Leerzeichen erweitert werden oder umgekehrt (: set noexpandtab) und alle mit Leerzeichen erstellten Registerkarten in Registerkarten konvertiert werden.

Sérgio
quelle
oder einfach automatisch im Visual Studio formatieren und es macht das Gleiche
John Livermore