Wie ändere ich Eclipse so, dass Leerzeichen anstelle von Tabulatoren verwendet werden?


895

Standardmäßig wird Eclipse mit einem harten Tabulator eingerückt. Wie ändere ich es in Leerzeichen?


43
@ i3ensays, da Registerkarten in verschiedenen Editoren oder Umgebungen unterschiedlich dargestellt werden, während Leerzeichen immer konsistent sind.
mmmdreg

29
@mmmdreg genau mein Punkt. Räume sind starr und verschwenderisch. Die Verwendung von Registerkarten gibt dem Betrachter die Freiheit, seinen Editor wie gewünscht zu konfigurieren. Ich möchte, dass meine Registerkarten als 2 Leerzeichen angezeigt werden, mein Kollege 4. Dies ist ohne die Verwendung von Registerkarten nicht möglich. Mein Kollege hier und ich kämpfen um Räume, wenn wir jeweils in unserem jeweiligen Editor formatieren. Registerkarten sind kein Problem. Deshalb wurden sie erfunden (ich vermute).
i3ensays

15
@ i3ensays Amen, Bruder! Ich habe über 10 Jahre lang versucht, die Leute dazu zu bringen, dieses Konzept zu verstehen ( rizzoweb.com/java/tabs-vs-spaces.html ). Was mich wirklich beunruhigt, ist, dass man als Programmierer denken würde, jeder würde das Konzept der Abstraktionen verstehen (eine Registerkarte ist eine Abstraktion der Codeeinrückung, während eine feste Anzahl von Leerzeichen eine fest codierte Implementierung ist) - aber leider scheint es dass viele Programmierer die Abstraktion hier nicht sehen können.
E-Riz

28
@ i3ensays Ihr Team sollte einen Codierungsstandard haben, der klar angibt, wie Code formatiert wird. Dies würde Zeit sparen, indem die von Ihnen erwähnten Schlachten verhindert werden. Sie sollten so schnell wie möglich einen annehmen, aber dieser Standard wird zu 100% sicher sagen, dass Tabs niemals verwendet werden dürfen, da dieser heilige Krieg vor langer Zeit von den "Weltraumleuten" gewonnen wurde, sodass ein Standard Ihnen nicht helfen wird. Abgesehen von Ausrichtungsproblemen ist einer der Hauptgründe für Leerzeichen nur, dass Tools zur Revisionskontrolle und Codeprüfer sich nicht mit diesem Problem befassen müssen. Ich habe vor 20 Jahren auf Ihrer Seite dieses Kampfes angefangen, aber schließlich gelernt, den Raum zu umarmen.
Night Owl

12
Der Grund dafür ist, dass Benutzer unweigerlich Kombinationen aus Tabulatoren und Leerzeichen haben und in einigen Editoren der Code nicht richtig angezeigt wird. Wenn jeder nur Leerzeichen verwendet, ist dies nie ein Problem.
Eamonn McEvoy

Antworten:


1239

Java Editor

  1. Klicken Sie auf Fenster » Einstellungen
  2. Erweitern Sie Java » Code Style
  3. Klicken Sie auf Formatierer
  4. Klicken Sie auf die Schaltfläche Bearbeiten
  5. Klicken Sie auf die Registerkarte Einrückung
  6. Setzen Sie unter Allgemeine Einstellungen die Registerkarte-Richtlinie auf:Spaces only
  7. Klicken Sie auf OK und Übelkeit, um die Änderungen zu übernehmen.

[ Hinweis : Falls erforderlich, Profil mit einem neuen Namen speichern, da das Standardprofil nicht überschrieben werden kann.]

Standardtexteditor

Vor Version 3.6:

Window->Preferences->Editors->Text Editors->Insert spaces for tabs

Version 3.6 und höher:

  1. Klicken Sie auf Fenster » Einstellungen
  2. Erweitern Sie Allgemein » Editoren
  3. Klicken Sie auf Texteditoren
  4. Überprüfen Sie Leerzeichen einfügen für Registerkarten
  5. Klicken Sie auf OK und Übelkeit, um die Änderungen zu übernehmen.

Beachten Sie, dass der Standardtexteditor als Grundlage für viele Nicht-Java-Editoren in Eclipse verwendet wird. Es ist erstaunlich, dass diese Einstellung erst 3.3 verfügbar war.

C / C ++

  1. Klicken Sie auf Fenster » Einstellungen
  2. Erweitern Sie C / C ++ » Code Style
  3. Klicken Sie auf Formatierer
  4. Klicken Sie auf die Schaltfläche Neu , um ein neues Profil zu erstellen, und klicken Sie dann auf OK, um fortzufahren
  5. Klicken Sie auf die Registerkarte Einrückung
  6. Setzen Sie unter Allgemeine Einstellungen die Registerkarte-Richtlinie auf:Spaces only
  7. Klicken Sie auf OK und Übelkeit, um die Änderungen zu übernehmen.

HTML

  1. Klicken Sie auf Fenster » Einstellungen
  2. Erweitern Sie Web » HTML-Dateien
  3. Klicken Sie auf Editor
  4. Unter Formatierung , wählen Sie die einrücken Räume mit Optionsfeld
  5. Klicken Sie auf OK , um die Änderungen zu übernehmen.

CSS

Befolgen Sie die gleichen Anweisungen für HTML, wählen Sie jedoch CSS-Dateien anstelle von HTML-Dateien aus .

JSP

Standardmäßig folgen JSP-Dateien den Formatierungseinstellungen für HTML-Dateien.

XML

Der Abstand der XML-Dateien wird in den Einstellungen konfiguriert.

  1. Klicken Sie auf Fenster » Einstellungen
  2. Erweitern Sie XML » XML-Dateien
  3. Klicken Sie auf Editor
  4. Wählen Sie Einrückung mit Leerzeichen
  5. Bei Bedarf können Sie die Einrückungsgröße angeben : Anzahl der einzurückenden Leerzeichen.

19
Für diejenigen, auf denen MyEclipse oder eine andere auf Eclipse basierende IDE installiert ist, kann ein anderer Editor Ihre Einstellungen überschreiben. Dies war bei MyEclipse und JavaScript der Fall. Ich hatte meine Einstellung "Leerzeichen für Tabulatoren einfügen" in Texteditoren aktiviert, aber Tabulatoren wurden weiterhin anstelle von Leerzeichen verwendet. Ich wollte es einen Tag nennen und es als Fehler abschreiben, aber dann sah ich einen zweiten Editor für JavaScript-Dateien (* .js) in der Liste "Associated Editors".
John

5
Dies kann ein hilfreicher Hinweis sein. Wenn Sie jedoch dasselbe Verhalten feststellen, überprüfen Sie, ob der Datei andere Editoren zugeordnet sind, da diese möglicherweise Ihre Einstellungen überschreiben. Gehen Sie dazu zu Fenster> Einstellungen> Allgemein> Editoren> Dateizuordnungen> und suchen Sie in dieser Liste nach der Dateierweiterung, die Ihren Tag ruiniert. Klicken Sie darauf und sehen Sie sich die Liste der zugeordneten Editoren unten an
John

106
Für vorhandene Java-Dateien drücken Sie Strg-A, um alles hervorzuheben, und dann Strg-I, um aktuelle Einrückungen anzuwenden. Andernfalls verhindern vorhandene Registerkarten Leerzeichen in neuen Zeilen, die mit der Eingabetaste erstellt wurden. Außerdem werden vorhandene Registerkarten durch Leerzeichen ersetzt.
Topchef

4
Für C / C ++ muss man auch C / C ++ -> "Code Style" ändern. Dies ist bei weitem das nervigste in dieser ansonsten großartigen Software.
Bindestrich

3
Um genauer zu sein, war der zweite Schritt für C / C ++ und Ecplipse 3.6 oder höher: Fenster> Einstellungen> C / C ++> Codestil> Formatierer> Neu, wählen Sie dann einen beliebigen Profilnamen aus, stellen Sie sicher, dass dieser Open the edit dialog nowaktiviert ist, klicken Sie auf OKund dann unter Die IndentationRegisterkarte werden Sie sehen Tab Policy. Stellen Sie es auf ein Spaces Only.
Garrett

150

Für den Standardtexteditor:

  • Allgemein » Editoren » Texteditoren » Insert spaces for tabs (überprüfen)

Für PHP:

  • PHP » Codestil » Formatierer » Tab policy (wählen Sie" Leerzeichen ")
  • PHP » Codestil » Formatierer » Indentation size (auf 4 gesetzt)

Für CSS:

  • Web » CSS » Editor » Indent using spaces (auswählen)
  • Web » CSS » Editor » Indentation size (auf 4 gesetzt)

Für HTML:

  • Web » HTML » Editor » Indent using spaces (auswählen)
  • Web » HTML » Editor » Indentation size (auf 4 gesetzt)

Für XML:

  • XML » XML-Dateien » Editor » Indent using spaces (auswählen)
  • XML » XML-Dateien » Editor » Indentation size (auf 4 gesetzt)

Für Javascript:

  • Javascript » Einstellungen » Codestil » Formatierer » Bearbeiten » Indentation (wählen Sie" nur Leerzeichen ")
  • Benennen Sie das Formatierungsprofil um, um es zu speichern

Für Java:

  • Java » Einstellungen » Codestil » Formatierer » Bearbeiten » Indentation (wählen Sie" nur Leerzeichen ")
  • Benennen Sie das Formatierungsprofil um, um es zu speichern

Ich sehe keine Web- oder Javascript-Optionen im Stammverzeichnis der Einstellungen (ich habe jedoch eine Webperspektive verfügbar) und möchte Tabulatoren als Leerzeichen nur für HTML-, CSS- und Javascript-Dateien festlegen. Ich bin bei Helios Eclipse für Java-Entwickler. Haben Sie eine Idee, wie ich diese Option erhalten kann?
Danny

Diese Einstellungen werden in Eclipse PDT (PHP Development Tools) angezeigt. Eclipse PDT basiert auf Eclipse WTP (Web Tools Platform), das JavaScript Development Tools (JSDT) und die Quellbearbeitung verschiedener Webformate umfasst. Dies ist wahrscheinlich, was Sie vermissen.
Patrick Fisher

+1 für das Java-Material, das unbedingt erforderlich ist, da die Standardeinstellungen die allgemeinen Einstellungen des Texteditors überschreiben.
Giulio Piancastelli

für C, Codestil -> Formatierer -> Bearbeiten -> Einzug -> Allgemeine Einstellungen -> Registerkartenrichtlinie
Andrew Cooke

1
Vielen Dank! Dies funktioniert gut auf dem Mars. Es ist enttäuschend, dass die Texteditor-Optionen vorhanden sind, aber nichts tun!
Paiego


26

Für CDT :

  • Gehen Sie zu Fenster / Einstellungen » C / C ++ » Codestil » Formatierer » Neu
  • Erstellen Sie ein neues, da das integrierte Profil nicht geändert werden kann
  • MyProfile (wählen Sie einen Namen für das Profil)
  • Einrückung » Tab Policy (nur Leerzeichen wählen)

23

Nur ein kurzer Tipp für Leute, die über diesen Thread stolpern. Es gibt noch einen Platz in Ihrem Projekt, an dem diese Einstellung auch festgelegt werden kann!

Eclipse unterstützt projektspezifische Einstellungen, und einige Projekte verwenden ihre eigenen, nicht verwalteten Einstellungen für Registerkarten / Leerzeichen, die nur in den aktuellen Projekteigenschaften angezeigt werden.

Dies kann verwaltet werden durch:

  • Klicken Sie im Paket-Explorer mit der rechten Maustaste auf das aktuelle Projekt
  • Eigenschaften » Java-Codestil
  • Deaktivieren Sie alle projektspezifischen Optionen

Dies ist im Allgemeinen nur dann ein Problem, wenn Sie den Code einer anderen Person in Ihre Eclipse importieren.


19

Für den Standardeditor:

Fenster » Einstellungen » Editoren » Texteditoren »Insert spaces for tabs

Geben Sie hier die Bildbeschreibung ein

Für Java Editor

Fenster » Einstellungen » Java » Codestil » Formatierer » Bearbeiten » Einrückung » Tab policy " Nur Leerzeichen "

Geben Sie hier die Bildbeschreibung ein


9

Als ich mit diesem Problem konfrontiert wurde, hatte ich "Leerzeichen für Tabulatoren verwenden" auf "true" gesetzt, wo immer ich sie finden konnte, und trotzdem bekam ich Tabulatoren. Dies lag daran, dass an anderer Stelle in der Datei Registerkarten verwendet wurden und versucht wurde, intelligente Einrückungen oder etwas Frustrierendes vorzunehmen.

Es wurde behoben, indem der gesamte Inhalt der Datei ausgewählt und auf einem Mac gedrückt wurde command+shift+f. Dadurch wird die angegebene Formatierung auf eine Datei angewendet. Ich kenne nicht die gleiche Tastenkombination unter Windows, aber probieren Sie es aus. An diesem Punkt bekomme ich das erwartete Verhalten.


Für eine modularere Lösung dieses Problems kann der Benutzer auch ein Suchen / Ersetzen für \t(stellen Sie sicher, dass reguläre Ausdrücke aktiviert sind) durchführen und durch die gewünschte Anzahl von Leerzeichen ersetzen
jlewkovich

Der Schlüssel zum Formatieren von Dateien unter Windows ist ziemlich ähnlich - Ctrl+Shift+F.
A.Alessio

5

Eclipse IDE für C / C ++ - Entwickler, Version: Helios Service Release 2

Sie müssen ein neues Profil erstellen, indem Sie unter "Fenster-> Einstellungen-> Codestil" auf die Schaltfläche Neu klicken.

Gehen Sie zur Registerkarte Einrückung und wählen Sie "Registerkarte Richtlinie = Nur Leerzeichen".


Eclipse IDE für C / C ++ - Entwickler, Version: Kepler Service Release 1

Folgen Sie dem Pfad unten, um ein neues Profil zu erstellen: "Fenster> Einstellungen> C / C ++> Codestil> Formatierer"

Gehen Sie zur Registerkarte Einrückung und wählen Sie "Registerkarte Richtlinie = Nur Leerzeichen".


5

Überprüfen Sie unbedingt den Java-Formatierer, da er die Einstellung "Leerzeichen für Tabulatoren einfügen" überschreibt . Gehe zu:

Java->Code Style"->Formatter->Edit->Identation

Hinweis: Sie müssen ein benutzerdefiniertes Format erstellen, um Ihre Konfiguration speichern zu können.


5

Ich fand die Lösung dieses Problems sehr einfach und das funktioniert immer. Es wird die Eclipse-Einstellungsdatei geändert.

Zum Beispiel (HTML-Einrückungsgröße ändern):


  1. Gefundene org.eclipse.wst.html.core.prefsDatei, die in sein sollteyour_workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/
  2. Hinzufügen / Ändern in Zeile in Datei:
indentationChar=space

indentationSize=4

1
Unter Ubuntu 14.04.03 LTS und Eclipse 4.5 kann ich die Identifikationsgröße nicht ändern. Sie ist immer gesperrt und nicht änderbar. Dies löste mein Problem.
TekTimmy

5

Gehen Sie zu Fenster -> Einstellungen und geben Sie die Registerkarte als Suchtext ein (wodurch ein Dialogfeld wie unten angezeigt wird):

Geben Sie hier die Bildbeschreibung ein

Gehen Sie zu den hervorgehobenen Abschnitten, um die Registerkartenrichtlinie zu ändern. Für die Editor - Einstellungen ist es meist Einrücken mit Leerzeichen (auch oben).

Für die Formatierungseinstellungen müssen Sie das aktive Profil bearbeiten und die Registerkartenrichtlinie aktualisieren (verfügbar unter ` Einzug -> Allgemeine Einstellungen :

Geben Sie hier die Bildbeschreibung ein


3

Fenster-> Einstellungen-> Java-> Codestil-> Formatierer-> Bearbeiten-> Einrückung = "Nur Leerzeichen"


3

Gehen Sie in Eclipse zu Fenster » Einstellungen und suchen Sie nach Formatierer .

Sie sehen verschiedene fette Links, klicken Sie auf jeden fetten Link und setzen Sie ihn auf use spacesstatttabs .

Im Java-Formatierungslink müssen Sie das Profil bearbeiten und die Registerkartenrichtlinie auf der Registerkarte spaces onlyEinrückung auswählen


2

Verpassen Sie nicht die Tab-Richtlinie für beide * Nur Leerzeichen *. Verwenden Sie Leerzeichen, um umbrochene Zeilen einzurücken

Ich habe nur das letztere überprüft und die Combobox als Tabs Only belassen, was CheckStyle immer wieder fehlschlug. Zu Ihrer Information, ich spreche über Einstellungen> Java> Formatierer> Bearbeiten ...


2

Im Eclipse-Format xml:

Für Registerkarte:

<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>

Für den Weltraum:

<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>

0
  • Klicken Sie auf Fenster »Einstellungen
  • Erweitern Sie Java »Code Style
  • Klicken Sie auf Formatierer
  • Klicken Sie auf Neu
  • Wählen Sie den Profilnamen
  • OK klicken
  • Klicken Sie auf die Schaltfläche Bearbeiten
  • Klicken Sie auf die Registerkarte Einrückung
  • Setzen Sie unter Allgemeine Einstellungen die Tabulatorrichtlinie auf: Nur Leerzeichen
  • OK klicken.


0

Als Ergänzung zu den anderen Antworten befindet sich unter Mac OS X das Menü "Einstellungen" unter Eclipse und nicht unter Fenster (im Gegensatz zu Windows / Linux Eclipse-Distributionen). Alles andere ist immer noch dasselbe wie in anderen Antworten nach diesem Punkt.

IE: Java Formatter verfügbar unter:

Eclipse >      | # Not Window!
Preferences >  |
Java >         |
Code Style >   |
Formatter      |

Bearbeiten Sie von hier aus den Formatierer und die Registerkartenrichtlinie kann unter "Einzug" festgelegt werden.


0

In Eclipse Mars (EE) unter Mac OS X konnte ich dies nur in den Einstellungen finden, indem ich das Dialogfeld "Einstellungen" öffnete und Formatierer eingab und dann Java-> Codestil-> Formatierer auswählte.

Java-> Code Style hat keinen Zugriff auf Formatter!


0

Und vergessen Sie nicht den ANT-Editor

Aus irgendeinem Grund wird Ant Editor nicht in den Suchergebnissen für 'tab'oder angezeigt'spaces' kann übersehen werden.

Unter Windows > Einstellungen

  • Ameise » Editor » Formatierer » Tab size: (auf 4 gesetzt)
  • Ameise » Editor » Formatierer » Use tab character instead of spaces (deaktivieren)

0

Sie können definitiv eine XML-Datei verwenden, um Ihren Formatierer des Codierungsstils zu konfigurieren. Mithilfe der Formatierungsdatei können Sie für alle Teammitglieder denselben Codierungsstil und dieselben Richtlinien verwenden.

Das Hinzufügen dieser folgenden Einstellungsvariablen hätte a tab= 2 spacesund konvertiert in Leerzeichen, selbst wenn Sie Tabbeim Codieren mit Eclipse wahrscheinlich die Kurzschrift verwenden .

<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>    
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="yes"/>

Beste,

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.