Die Frage besteht aus zwei Teilen, von denen ich bereits eine Antwort habe.
- Wie entferne ich nachfolgende Leerzeichen automatisch aus der gesamten zu bearbeitenden Datei ? -> Antwort: Verwenden Sie das AnyEdit-Plugin , das bei jedem Speichern in der Datei so eingestellt werden kann.
- Wie entferne ich nachgestellte Leerzeichen automatisch nur aus den Zeilen, die ich geändert habe ? -> Das weiß ich nicht und würde mich über jede Hilfe freuen.
eclipse
whitespace
Jan Żankowski
quelle
quelle
Antworten:
Preferences-> Java-> Editors-> Save Actions-> prüfen Perform the selected actions on save-> prüfen Additional actions-> klicken Configure..-> zur Code organizingRegisterkarte gehen -> prüfen Remove trailing whitespace-> auswählen All lines.
Preferences-> Java-> Editor-> Save Actions-> check " Perform the selected actions on save-> check Format source code-> selectFormat edited lines .
Beachten Sie, dass kein Klick erforderlich ist. Configure the formatter settings on the Formatter pageAlle Codestile enthalten automatisch das Entfernen von nachgestellten Leerzeichen. Zumindest konnte ich in der Formatter-Konfiguration keine Einstellung dafür finden, und es funktionierte sofort für integrierte Java-Konventionen, Eclipse- , Eclipse 2.1-Stile sowie GoogleStyle .
Wenn dieses Set-up verwenden, müssen Sie natürlich auch deaktivieren , die Lösung zu Teil 1 der Frage.
quelle
Ich gehe davon aus, dass Ihre Fragen sich auf Java-Code beziehen. In diesem Fall benötigen Sie keine zusätzlichen Plugins, um 1) zu erreichen. Sie können einfach zu Einstellungen -> Java -> Editor -> Aktionen speichern gehen und es so konfigurieren , dass nachgestellte Leerzeichen entfernt werden .
Nach alledem möchten Sie dies auch zu einer teamweiten Umgebung machen, oder? Um Ihnen das Leben zu erleichtern und nicht jedes Mal, wenn Sie einen neuen Arbeitsbereich haben, daran denken zu müssen, ihn einzurichten, können Sie die Speicheraktion als projektspezifische Voreinstellung festlegen, die zusammen mit dem Code in Ihrem SCM gespeichert wird.
Klicken Sie dazu mit der rechten Maustaste auf Ihr Projekt und gehen Sie zu Eigenschaften -> Java-Editor -> Aktionen speichern . Von dort aus können Sie projektspezifische Einstellungen aktivieren und konfigurieren, um nachfolgende Leerzeichen (unter anderem) zu entfernen.
NB : Diese Option wurde in Eclipse Kepler (4.3) und den folgenden Versionen entfernt.
NB # 2: Die Option scheint wieder in Eclipse Luna zu sein -
Luna Service Release 1a (4.4.1)
quelle
Sie benötigen dazu kein Plugin. Wenn Sie beispielsweise JAVA codieren, können Sie nachfolgende Leerzeichen löschen, indem Sie Speicheraktionen konfigurieren:
Eclipse 3.6
Preferences-> Java-> Editors-> Save Actions-> Prüfen Perform the selected actions on save-> Prüfen Additional actions-> Klicken Sie auf die Configure..Schaltfläche.
Code organizingÜberprüfen Sie auf der RegisterkarteRemove trailing whitespace
quelle
PyDev kann dies entweder durch Ctrl+ Shift+ tun, Fwenn Sie die Code-Formatierungsoption dafür eingestellt haben, oder durch during saving:
Eclipse-> Window-> Preferences-> PyDev-> Editor-> Code Style->Code Formatter :
Ich benutze mindestens diese:
quelle
Gehen Sie wie folgt vor:
Preferences-> Java-> Editor->Save Actions
quelle
Sie können einen Schlüssel in Eclipse zuordnen, um nachfolgende Leerzeichen in der gesamten Datei manuell zu entfernen, jedoch nur auf Anfrage und nicht automatisch beim Speichern. (Einstellungen / Schlüssel und dann eine Reihe von Schlüsseln dem abschließenden Leerzeichen Datei / Entfernen zuordnen.) Dies kann nützlich sein, wenn Sie alle neuen Dateien bereinigen möchten, aber den alten Code unberührt lassen möchten.
Eine andere Strategie besteht darin, die visuelle Anzeige von Leerzeichen zu aktivieren, damit Sie zumindest wissen, wann Sie nachgestellte Leerzeichen hinzufügen. Soweit ich weiß, gibt es zwar keine Möglichkeit, nur nachgestellte Leerzeichen anzuzeigen, aber ich bin froh, dass ich mich als falsch erwiesen habe.
quelle
Zur Not können Sie für Editoren, die das Entfernen von nachgestellten Leerzeichen überhaupt nicht unterstützen (z. B. den XML-Editor), diese aus allen Zeilen entfernen, indem Sie suchen und ersetzen, reguläre Ausdrücke aktivieren und dann "[\ t] suchen. + $ "und durch" "ersetzen (leer). Es gibt wahrscheinlich eine bessere Regex, um das zu tun, aber es funktioniert für mich, ohne AnyEdit installieren zu müssen.
quelle
Ich würde auch AnyEdit sagen. Diese spezifischen Funktionen werden nicht bereitgestellt. Wenn Sie und Ihr Team jedoch bei jeder Speicheraktion die AnyEdit-Funktionen verwenden, darf beim Öffnen einer Datei kein nachfolgendes Leerzeichen vorhanden sein.
Wenn Sie diese Datei ändern und neue nachfolgende Leerzeichen hinzufügen, entfernt AnyEdit während des Speichervorgangs nur diese neuen Leerzeichen, da sie die einzigen nachfolgenden Leerzeichen in dieser Datei sind.
Wenn Sie aus bestimmten Gründen die nachgestellten Leerzeichen in den Zeilen beibehalten müssen, die nicht von Ihnen geändert wurden, habe ich keine Antwort für Sie und bin mir nicht sicher, ob diese Art von Funktion in einem Eclipse-Plugin vorhanden ist ...
quelle
Es ist derzeit nicht möglich , dies in Eclipse generisch zu tun, aber es kann mit grundlegenden Java-Kenntnissen und etwas Freizeit geändert werden, um grundlegende Unterstützung für diese https://bugs.eclipse.org/bugs/show_bug.cgi hinzuzufügen . id = 180349
Das abhängige Problem: https://bugs.eclipse.org/bugs/show_bug.cgi?id=311173
quelle
Für PHP gibt es auch eine Option:
quelle
Mit sed, dem Unix-Befehlszeilentool, gibt es eine sehr einfache Möglichkeit, dies zu tun. Sie könnten wahrscheinlich ein Makro in Eclipse erstellen, um dies auszuführen:
quelle
Wie @Malvineous sagte, ist es nicht professionell, sondern eine Problemumgehung, die Find / Replace-Methode zu verwenden, um nachgestellten Speicherplatz zu entfernen (siehe unten, einschließlich Tab U + 0009 und Whitespace U + 0020).
Drücken Sie einfach Strg + F (oder Befehl + F).
[\t ][\t ]*$
extra:
Zum Entfernen von führendem Leerzeichen suchen
^[\t ][\t ]*
anstelle von[\t ][\t ]*$
Zum Entfernen von Leerzeilen suchen
^\s*$\r?\n
quelle
[\t ]+$
statt[\t ][\t ]*$
?Mir ist keine Lösung für den zweiten Teil Ihrer Frage bekannt. Der Grund ist, dass es nicht klar ist, wie ich mich ändern soll . Wann geändert? Nur zwischen 2 Speichern oder zwischen Commits ... Grundsätzlich - vergessen Sie es.
Ich gehe davon aus, dass Sie sich an eine Richtlinie halten möchten, aber den Rest des Codes nicht berühren. Die Richtlinie sollte jedoch insgesamt verwendet werden und nicht für Bisse und Stücke. Mein Vorschlag ist also: Ändern Sie den gesamten Code in die Richtlinie: Es handelt sich um eine einmalige Operation, aber stellen Sie sicher, dass alle Ihre Entwickler dasselbe Plugin (AnyEdit) mit denselben Einstellungen für das Projekt haben.
quelle
Ich habe diesen Befehl für git verwendet:
git config --global core.whitespace cr-at-eol
Es
^M
werden nachgestellte Zeichen entfernt .quelle