By default Eclipse indents with a hard tab character. How do I change it to spaces?
21 Answers
Java Editor
- Click Window » Preferences
- Expand Java » Code Style
- Click Formatter
- Click the Edit button
- Click the Indentation tab
- Under General Settings, set Tab policy to:
Spaces only
- Click OK ad nauseam to apply the changes.
[Note: If necessary save profile with a new name as the default profile cannot be overwritten.]
Default Text Editor
Before version 3.6:
Window->Preferences->Editors->Text Editors->Insert spaces for tabs
Version 3.6 and later:
- Click Window » Preferences
- Expand General » Editors
- Click Text Editors
- Check Insert spaces for tabs
- Click OK ad nauseam to apply the changes.
Note that the default text editor is used as the basis for many non-Java editors in Eclipse. It's astonishing that this setting wasn't available until 3.3.
C / C++
- Click Window » Preferences
- Expand C/C++ » Code Style
- Click Formatter
- Click the New button to create a new profile, then OK to continue
- Click the Indentation tab
- Under General Settings, set Tab policy to:
Spaces only
- Click OK ad nauseam to apply the changes.
HTML
- Click Window » Preferences
- Expand Web » HTML Files
- Click Editor
- Under Formatting, select the Indent using spaces radio button
- Click OK to apply the changes.
CSS
Follow the same instructions for HTML, but select CSS Files instead of HTML Files.
JSP
By default, JSP files follow the formatting preferences for HTML Files.
XML
XML files spacing is configured in Preferences.
- Click Window » Preferences
- Expand XML » XML Files
- Click Editor
- Select Indent using spaces
- You can specify the Indentation size if needed: number of spaces to indent.
For the default text editor:
- General » Editors » Text Editors »
Insert spaces for tabs
(check it)
For PHP:
- PHP » Code Style » Formatter »
Tab policy
(choose "spaces") - PHP » Code Style » Formatter »
Indentation size
(set to 4)
For CSS:
- Web » CSS » Editor »
Indent using spaces
(select it) - Web » CSS » Editor »
Indentation size
(set to 4)
For HTML:
- Web » HTML » Editor »
Indent using spaces
(select it) - Web » HTML » Editor »
Indentation size
(set to 4)
For XML:
- XML » XML Files » Editor »
Indent using spaces
(select it) - XML » XML Files » Editor »
Indentation size
(set to 4)
For Javascript:
- Javascript » Preferences » Code Style » Formatter » Edit »
Indentation
(choose "spaces only") - Rename the formatter settings profile to save it
For Java:
- Java » Preferences » Code Style » Formatter » Edit »
Indentation
(choose "spaces only") - Rename the formatter settings profile to save it
From changing tabs to spaces in eclipse:
Window » Preferences » Java » Code Style » Formatter » Edit » Indentation
(choose "Spaces Only")
Just a quick tip for people stumbling across this thread; there is one more place where this setting can also be set, in your project!
Eclipse supports project-specific settings, and some projects will use their own, un-managed tabs/spaces settings, which won't show up anywhere except the current project Properties.
This can be managed through:
- Right-Click current Project in Package Explorer
- Properties » Java Code Style
- Turn off all the project-specific options
This will generally only be an issue if you import someone else's code into your Eclipse.
When I faced this problem I had "use spaces for tabs" set to true everywhere I could find, and yet I was still getting tabs. It ended up being because tabs were used elsewhere in the file and it was trying to do smart indentation or something frustrating.
It was resolved by selecting the entire contents of the file and pressing, on a mac, command+shift+f
. This applies the given formatting to a file. I do not know the same keybinding on windows, but give that a try. At that point I begin getting the expected behavior.
Eclipse IDE for C/C++ Developers, Version: Helios Service Release 2
You need to create new profile by pressing New button inside "Window->Preferences->Code Style"
Go to Indentation tab and select "Tab policy = Space only"
Eclipse IDE for C/C++ Developers, Version: Kepler Service Release 1
Follow the path below to create new profile: "Window > Preferences > C/C++ > Code Style > Formatter"
Go to Indentation tab and select "Tab policy = Space only"
I found the solution this problem very simple and which works always. It is change the eclipse setting file.
For example (change HTML indentation size):
- Found
org.eclipse.wst.html.core.prefs
file which should be inyour_workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/
- Add/Change to line in file:
indentationChar=space
indentationSize=4
Go to Window -> Preferences and type tab as the search text (which will display a dialog like below):
Go to the highlighted sections to change the tab policy. For the Editor settings it is mostly Indent using spaces (also shown above).
For Formatter settings you need to edit the active profile and update Tab policy (available under `Indentation -> General settings:
Also consider using an .editorconfig file: https://marketplace.eclipse.org/content/editorconfig-eclipse. Someone not using Eclipse may also benefit from this, in the worst case it can serve as a guideline. NOTE: I will not enter the tabs vs space wars but use spaces FTW :-)
You can definitely use XML file to configure your formatter of the coding style. The formatter file helps you to have the same coding style and guidelines across your team members.
Adding these below setting variables would have a tab= 2 spaces
and convert to space even you probably use Tab
shorthand key when coding using Eclipse.
<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"/>
Best,
As an augmentation to the other answers, on Mac OS X, the "Preferences" menu is under Eclipse, not Window (unlike Windows/Linux Eclipse distributions). Everything else is still the same as pointed out by other answers past this point.
IE: Java Formatter available under:
Eclipse > | # Not Window!
Preferences > |
Java > |
Code Style > |
Formatter |
From here, edit the formatter and the tab policy can be set under "Indentation".