Ist es möglich, Visual Studio 2008 so zu konfigurieren, dass Leerzeichen am Ende jeder Zeile beim Speichern einer Datei automatisch entfernt werden? Es scheint keine integrierte Option zu geben. Gibt es dafür Erweiterungen?
122
Ist es möglich, Visual Studio 2008 so zu konfigurieren, dass Leerzeichen am Ende jeder Zeile beim Speichern einer Datei automatisch entfernt werden? Es scheint keine integrierte Option zu geben. Gibt es dafür Erweiterungen?
Antworten:
CodeMaid ist eine sehr beliebte Visual Studio-Erweiterung und führt dies automatisch zusammen mit anderen nützlichen Bereinigungen durch.
Ich habe es so eingestellt, dass beim Speichern eine Datei bereinigt wird, was meiner Meinung nach die Standardeinstellung ist.
quelle
Suchen / Ersetzen mit regulären Ausdrücken
Erweitern Sie im Dialogfeld Suchen und Ersetzen die Option Suchoptionen , aktivieren Sie Verwenden und wählen Sie Reguläre Ausdrücke
Finden Sie was : "
:Zs#$
"Ersetzen durch : ""
Klicken Sie auf Alle ersetzen
In anderen Editoren (einem normalen Parser für reguläre Ausdrücke)
:Zs#$
wäre "\s*$
" " ".quelle
[^\S\r\n]+(?=\r?$)
[:Zs\t]#$
ist dies eine nützliche Anpassung.Sie können ein Makro erstellen, das nach dem Speichern ausgeführt wird, um dies für Sie zu tun.
Fügen Sie dem EnvironmentEvents-Modul für Ihre Makros Folgendes hinzu.
Ich benutze dies seit einiger Zeit ohne Probleme. Ich habe das Makro nicht erstellt, sondern von dem in ace_guidelines.vsmacros geändert, das mit einer schnellen Google-Suche gefunden werden kann.
quelle
Vor dem Speichern können Sie möglicherweise die Verknüpfung zum automatischen Formatieren CTRL+ K+ verwenden D.
quelle
Mit diesen drei Aktionen können Sie dies ganz einfach tun:
Ctrl+ A(Alle Texte auswählen)
Bearbeiten -> Erweitert -> Horizontales Leerzeichen löschen
Bearbeiten -> Erweitert -> Formatauswahl
Warten Sie einige Sekunden und fertig.
Es ist Ctrl+ Z‚ in der Lage, falls etwas schief gelaufen ist .
quelle
Hier ist der Code, mit dem ich am Ende Elemente aus allen bereits gegebenen Antworten erhalten habe. (Ich schreibe hauptsächlich C ++ - Code, aber es ist einfach, bei Bedarf nach verschiedenen Dateierweiterungen zu suchen.)
Vielen Dank an alle, die dazu beigetragen haben!
quelle
Sie können ein Makro verwenden, wie unter Entfernen von Leerzeichen und Umschreiben von Kommentaren mithilfe von Regex-Suchen beschrieben
quelle
Ich verwende VWD 2010 Express, wo Makros leider nicht unterstützt werden. Also habe ich nur tun , Kopieren / Einfügen in Notepad ++ links oben Menü
Edit
>Blank Operations
>Trim Trailing Space
gibt es weitere ähnliche zu verfügbaren Operationen. Kopieren Sie es anschließend in Visual Studio.Sie können auch NetBeans anstelle von Notepad ++ verwenden, das im Menü "Quelle" die Option "Nachgestellte Leerzeichen entfernen" enthält.
quelle
Tun Sie es nicht, es sei denn, dies ist ein Ein-Personen-Projekt. Es muss trivial sein, Ihre lokalen Dateien von Ihrem Quellcode-Repository zu unterscheiden, und das Löschen von Leerzeichen würde Zeilen ändern, die Sie nicht ändern müssen. Ich verstehe vollkommen; Ich liebe es, mein Leerzeichen einheitlich zu gestalten - aber das sollten Sie aufgeben, um eine sauberere Zusammenarbeit zu gewährleisten.
quelle
Ich denke, dass die Jeff Muir- Version ein wenig verbessert werden könnte, wenn sie nur Quellcodedateien schneidet (in meinem Fall C #, aber es ist einfach, weitere Erweiterungen hinzuzufügen). Außerdem habe ich eine Prüfung hinzugefügt, um sicherzustellen, dass das Dokumentfenster sichtbar ist, da einige Situationen ohne diese Prüfung seltsame Fehler anzeigen (z. B. LINQ to SQL-Dateien '* .dbml').
quelle
Ich persönlich liebe die Visual Studio-Erweiterung Trailing Whitespace Visualizer, die bereits über Visual Studio 2012 unterstützt wird.
quelle
Ich glaube, ich habe eine Version dieses Makros, die VS2010 auf Refactor nicht zum Absturz bringt und auch die IDE beim Speichern von Nicht-Text-Dateien nicht hängen lässt. Versuche dies:
quelle
Ich benutze dazu ArtisticStyle (C ++) und formatiere meinen Code neu. Ich musste dies jedoch als externes Tool hinzufügen und Sie müssen es selbst auslösen, damit es Ihnen möglicherweise nicht gefällt.
Ich finde es jedoch hervorragend, dass ich Code auf benutzerdefiniertere Weise neu formatieren kann (z. B. mehrzeilige Funktionsparameter), um den Preis für die manuelle Ausführung zu zahlen. Das Tool ist kostenlos.
quelle
Aufbauend auf Dyaus 'Antwort und einem regulären Ausdruck aus einem Verbindungsbericht ist hier ein Makro, das das Speichern aller Elemente behandelt, Tabulatoren nicht durch Leerzeichen ersetzt und keine statische Variable erfordert. Es ist ein möglicher Nachteil? Es scheint ein wenig langsam, vielleicht aufgrund mehrerer Anrufe an
FindReplace
.Für alle anderen, die versuchen, dies in einem Visual Studio 2012-Add-In zu verwenden, lautet der reguläre Ausdruck, den ich letztendlich verwendet habe
[ \t]+(?=\r?$)
(vergessen Sie nicht, die Backslashes bei Bedarf zu umgehen). Ich kam hier nach mehreren vergeblichen Versuchen , die Probleme mit einer zu beheben Raw - Konvertierung von{:b}+$
Versagen des Wagenrücklauf zu entsprechen.quelle
Dies ist ein wirklich gutes Beispiel dafür, wie nachgestellte Leerzeichen entfernt werden. Es gibt einige Dinge, die ich basierend auf dem, was ich mit diesem Makro entdeckt habe, ändern würde. Zunächst konvertiert das Makro Tabulatoren automatisch in Leerzeichen. Dies ist nicht immer wünschenswert und kann dazu führen, dass sich die Situation für Menschen, die Tabs lieben (normalerweise Linux-basiert), verschlimmert. Das Tab-Problem ist sowieso nicht wirklich dasselbe wie das zusätzliche Whitespace-Problem. Zweitens geht das Makro davon aus, dass nur eine Datei gleichzeitig gespeichert wird. Wenn Sie mehrere Dateien gleichzeitig speichern, wird das Leerzeichen nicht korrekt entfernt. Der Grund ist einfach. Das aktuelle Dokument wird als das Dokument betrachtet, das Sie sehen können. Drittens werden die Suchergebnisse nicht auf Fehler überprüft. Diese Ergebnisse können eine bessere Aufklärung darüber geben, was als nächstes zu tun ist. Wenn beispielsweise kein Leerzeichen gefunden und ersetzt wird, Die Datei muss nicht erneut gespeichert werden. Im Allgemeinen gefiel mir nicht, dass die globale Flagge gespeichert werden muss oder nicht. Es neigt dazu, aufgrund unbekannter Zustände nach Ärger zu fragen. Ich vermute, die Flagge wurde nur hinzugefügt, um eine Endlosschleife zu verhindern.
Ich habe Debug-Meldungsfelder hinzugefügt, um zu sehen, was los ist. Es wurde sehr deutlich, dass das Speichern mehrerer Dateien nicht funktionierte. Wenn Sie mit ihnen spielen möchten, kommentieren Sie diese Zeilen aus.
Der Hauptunterschied besteht in der Verwendung von document.Activate (), um das Dokument in den Vordergrund des aktiven aktuellen Dokuments zu zwingen. Wenn das Ergebnis 4 ist, bedeutet dies, dass der Text ersetzt wurde. Null bedeutet, dass nichts passiert ist. Sie sehen zwei Speicherungen für jede Datei. Der erste wird ersetzen und der zweite wird nichts tun. Möglicherweise kann es zu Problemen kommen, wenn der Speicher die Datei nicht schreiben kann. Hoffentlich wird dieses Ereignis in diesem Fall nicht aufgerufen.
Vor dem ursprünglichen Skript war mir nicht bekannt, wie die Skripterstellung in Visual Studio funktioniert. Es ist etwas überraschend, dass Visual Basic als Hauptschnittstelle verwendet wird, aber es funktioniert einwandfrei für das, was es tun muss.
quelle
Eine einfache Ergänzung besteht darin, Wagenrückläufe während des Speicherns zu entfernen.
Der Schlüssel zu dieser Arbeit ist das Ändern von \ x000d \ x000a in \ x000a. Das Präfix \ x gibt ein Unicode-Muster an. Dies automatisiert den Prozess der Vorbereitung von Quelldateien für Linux-Systeme.
quelle