wake-up-neo.net

Wie entferne ich abschließende Leerzeichen in Eclipse automatisch?

Die Frage besteht aus zwei Teilen, von denen ich bereits die Antwort habe.

  1. Wie entferne ich automatisch abschließende Leerzeichen aus der gesamten zu bearbeitenden Datei ? -> Antwort: Verwenden Sie das AnyEdit-Plugin , das bei jedem Speichern in der Datei eingestellt werden kann.
  2. Wie entferne ich automatisch abschließende Leerzeichen nur aus den Zeilen, die ich geändert habe ? -> Das weiß ich nicht und würde mich über jede Hilfe freuen.
409
Jan Żankowski
  1. Leerzeichen entfernen aus der gesamten zu bearbeitenden Datei:

Preferences -> Java -> Editors -> Save Actions -> überprüfen Perform the selected actions on save -> überprüfen Additional actions -> klicken Configure.. -> gehe zu Code organizing tab -> überprüfen Remove trailing whitespace -> auswählen All lines.

  1. Leerzeichen entfernen nur aus den Zeilen, die ich geändert habe:

Preferences -> Java -> Editor -> Save Actions -> check "Perform the selected actions on save -> überprüfen Format source code -> auswählen Format edited lines.

Beachten Sie, dass Sie nicht klicken müssen Configure the formatter settings on the Formatter page - Bei allen Codestilen werden abschließende Leerzeichen automatisch entfernt. Zumindest konnte ich in der Formatter-Konfiguration keine Einstellung dafür finden, und es funktionierte sofort für die eingebauten Stile Java Conventions, Eclipse, Eclipse 2.1 sowie GoogleStyle .

Wenn Sie diese Einstellung verwenden, müssen Sie natürlich auch die Lösung für Teil 1 der Frage deaktivieren .

Eclipse version checked: 4.5.2
129
Dan Berindei

Ich nehme an, Ihre Fragen beziehen sich auf Java Code. In diesem Fall benötigen Sie keine zusätzlichen Plugins, um 1 auszuführen). Gehen Sie einfach zu Einstellungen -> Java -> Editor -> Aktionen speichern und konfigurieren Sie es auf abschließendes Leerzeichen entfernen.

Mit den Klängen wollen Sie das auch zu einem teamweiten Setting machen, oder? Um das Leben zu vereinfachen und nicht jedes Mal neu eingerichtet werden zu müssen, wenn Sie einen neuen Arbeitsbereich haben, 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 es, um nachfolgende Leerzeichen zu entfernen (unter anderem nützliche Dinge).

NB : Diese Option wurde in Eclipse Kepler (4.3) und den folgenden Versionen entfernt.

NB # 2: Die Option scheint in Eclipse Luna wieder verfügbar zu sein - Luna Service Release 1a (4.4.1)

347
gcastro

Sie benötigen dazu kein Plugin. Wenn Sie beispielsweise Java codieren, können Sie nachfolgende Leerzeichen löschen, indem Sie Sicherungsaktionen konfigurieren:

Eclipse 3.6

Preferences -> Java -> Editors -> Save Actions -> Überprüfen Perform the selected actions on save -> Überprüfen Additional actions -> Klicken Sie auf die Configure.. Taste.

In dem Code organizing Registerkarte überprüfen Remove trailing whitespace

72
Dave

PyDev kann es entweder tun Ctrl+Shift+F Wenn 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:

  • Automatisches Formatieren vor dem Speichern
  • Richtige Trimmlinien?
  • Neue Zeile am Ende der Datei hinzufügen
46
Ciantic

Mach folgendes:

Preferences -> Java -> Editor -> Save Actions

enter image description here

35
Sumit Singh

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. (Voreinstellungen/Schlüssel und ordnen Sie dann eine Reihe von Schlüsseln "Datei"/"Abschließendes Leerzeichen entfernen" zu.) Dies kann nützlich sein, wenn Sie alle neuen Dateien bereinigen möchten, den alten Code jedoch 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 keine Möglichkeit, nur nachgestellte Leerzeichen anzuzeigen, aber ich bin froh, wenn ich mich irre.

19
Kena

Zur Not können Sie Editoren, die das Entfernen von nachgestellten Leerzeichen überhaupt nicht unterstützen (z. B. den XML-Editor), aus allen Zeilen entfernen, indem Sie suchen und ersetzen, reguläre Ausdrücke aktivieren und dann "[\ t] suchen. + $ "und Ersetzen durch" "(leer). Es gibt wahrscheinlich ein besseres Regex, aber es funktioniert bei mir, ohne dass AnyEdit installiert werden muss.

10
Malvineous

Es ist unmöglich im Moment in Eclipse generisch zu machen, aber es kann geändert werden mit basic Java Wissen und etwas freie Zeit, um grundlegende Unterstützung dafür hinzuzufügen https://bugs.Eclipse.org/bugs/show_bug.cgi?id=180349

Das abhängige Problem: https://bugs.Eclipse.org/bugs/show_bug.cgi?id=31117

8

Ich würde auch AnyEdit sagen. Es bietet diese spezifischen Funktionalitäten nicht. Wenn Sie und Ihr Team jedoch die AnyEdit-Funktionen bei den einzelnen Speicheraktionen verwenden, darf beim Öffnen einer Datei kein Leerzeichen nachgestellt werden.

Wenn Sie diese Datei ändern und neue nachgestellte Leerzeichen hinzufügen, entfernt AnyEdit während des Speichervorgangs nur diese neuen Leerzeichen, da dies die einzigen nachgestellten Leerzeichen in dieser Datei sind.

Wenn Sie aus bestimmten Gründen die nachgestellten Leerzeichen in den von Ihnen not geänderten Zeilen beibehalten müssen, habe ich keine Antwort für Sie, und ich bin nicht sicher, ob diese Art von Funktion vorhanden ist in jedem Eclipse-Plugin ...

8
Romain Linsolas

Für PHP gibt es auch eine Option:enter image description here

5
HeyMan

Mit sed, dem Unix-Kommandozeilen-Tool, ist das ganz einfach. Sie könnten wahrscheinlich ein Makro in Eclipse erstellen, um dies auszuführen:

sed -i 's/[[:space:]]*$//' <filename>
4
jcoffland

Wie @Malvineous sagte, ist es nicht professionell, sondern ein Workaround, die Find/Replace-Methode zu verwenden, um nachgestellte Leerzeichen zu entfernen (darunter Tab U + 0009 und Whitespace U + 0020).
Drücken Sie einfach Strg + F (oder Befehl + F)

  1. Finden[\t ][\t ]*$
  2. Ersetzen durch leere Zeichenfolge
  3. Verwenden Sie reguläre Ausdrücke
  4. Alle ersetzen

extra:
Um das führende Leerzeichen zu entfernen, finden Sie ^[\t ][\t ]* anstatt [\t ][\t ]*$
Zum Entfernen von Leerzeilen finden Sie ^\s*$\r?\n

3
fuweichin

Mir ist keine Lösung für den zweiten Teil Ihrer Frage bekannt. Der Grund ist, dass es nicht klar ist, wie ich ändere . Geändert wann? Nur zwischen zwei Speichern oder zwischen Festschreibungen ... Grundsätzlich - vergiss 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 und nicht für Bisse und Stücke verwendet werden. Mein Vorschlag lautet also: Ändern Sie den gesamten Code in die Richtlinie: Es handelt sich um einen einmaligen Vorgang. Stellen Sie jedoch sicher, dass alle Entwickler dasselbe Plugin (AnyEdit) mit denselben Einstellungen für das Projekt verwenden.

1
van

Ich habe diesen Befehl für git benutzt: git config --global core.whitespace cr-at-eol

Es entfernt ^M Zeichen, die nachgestellt werden.

1
user7577563