如何更改Eclipse以使用空格而不是制表符?


895

缺省情况下,Eclipse带有硬制表符字符的缩进。如何将其更改为空格?


43
@ i3ensays,因为选项卡在不同的编辑器或环境中的显示方式有所不同,而空格始终保持一致。
mmmdreg 2014年

29
@mmmdreg正是我的意思。空间是刚性且浪费的。使用选项卡使查看者可以自由配置所需的编辑器。我希望标签页显示为2个空格,我的同事4。这是无法使用标签页的。当我们在各自的编辑器中分别设置格式时,我和我的同事在这里争夺空间。标签不是问题;这就是为什么他们被发明的原因(我怀疑)。
i3ensays 2014年

15
@ i3ensays阿们,兄弟!十多年来,我一直在努力使人们理解这个概念(rizzoweb.com/java/tabs-vs-spaces.html)。真正令我震惊的是,作为程序员,您会认为每个人都会理解抽象的概念(制表符是代码缩进的抽象,而固定数量的空格是硬编码的实现)-但是,看来许多程序员在这里看不到抽象。
E-Riz 2014年

28
@ i3ensays您的团队应该有一个明确说明编码格式的编码标准。这样可以避免您提到的战斗,从而节省时间。您应该尽快采用标准,但是该标准将100%肯定声明不要使用制表符,因为这场神圣的战争是很久以前的“太空人”赢得的,因此标准将无济于事。除了对齐问题之外,仅保留空格的最大原因之一就是修订控制工具和代码审阅者无需处理此问题。20年前,我从这场战斗的起点开始,但最终学会了拥抱太空。
猫头鹰2014年

12
原因是人们不可避免地最终会使用制表符和空格的组合,并且在某些编辑器中,代码将无法正确显示。如果每个人都只是使用空格,那么这绝不是问题。
Eamonn McEvoy 2014年

Answers:


1239

Java编辑器

  1. 单击窗口 » 首选项
  2. 展开Java » 代码样式
  3. 单击格式化
  4. 点击编辑按钮
  5. 单击缩进选项卡
  6. 在“ 常规设置”下,将“ 标签政策设置为:Spaces only
  7. 点击确定,立即应用更改。

[ 注意:如有必要,无法覆盖具有新名称的保存配置文件,因为默认配置文件无法覆盖。]

默认文本编辑器

在3.6版之前:

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

3.6版及更高版本:

  1. 单击窗口 » 首选项
  2. 展开一般 » 编辑
  3. 单击文本编辑器
  4. 检查选项卡的插入空间
  5. 点击确定,立即应用更改。

请注意,默认文本编辑器用作Eclipse中许多非Java编辑器的基础。令人惊讶的是,该设置直到3.3才可用。

C / C ++

  1. 单击窗口 » 首选项
  2. 展开C / C ++ » 代码样式
  3. 单击格式化
  4. 单击“ 新建”按钮创建一个新的配置文件,然后单击“确定”继续。
  5. 单击缩进选项卡
  6. 在“ 常规设置”下,将“ 标签政策设置为:Spaces only
  7. 点击确定,立即应用更改。

的HTML

  1. 单击窗口 » 首选项
  2. 展开网站 » HTML文件
  3. 点击编辑器
  4. 在“ 格式”下,选择“ 使用空格缩进”单选按钮
  5. 单击确定以应用更改。

的CSS

遵循与HTML相同的说明,但是选择CSS Files而不是HTML Files

JSP

默认情况下,JSP文件遵循HTML文件的格式首选项。

XML格式

XML文件间距在首选项中配置。

  1. 单击窗口 » 首选项
  2. 展开XML » XML文件
  3. 点击编辑器
  4. 选择缩进使用空格
  5. 您可以根据需要指定缩进大小:要缩进的空格数。

19
对于那些安装了MyEclipse或在Eclipse之上构建任何其他IDE的用户,您可能需要另一个编辑器来覆盖您的设置。MyEclipse和JavaScript就是这种情况。我在“文本编辑器”中启用了“为标签插入空格”设置,但是仍在使用标签代替空格。我本来要称呼它为错误,然后将其注销,但是随后在“关联的编辑器”列表中看到了JavaScript(* .js)文件的第二个编辑器。
约翰

5
这可能是一个有用的提示,但是如果您遇到相同的行为,请检查文件是否具有任何其他关联的编辑器,因为它们可能会覆盖您的设置。为此,请转到“窗口”>“首选项”>“常规”>“编辑器”>“文件关联”>,然后在该列表中查找破坏您一天的文件扩展名,然后单击它,然后查看下面的“关联编辑器”列表
John

106
对于现有的Java文件,请按Ctrl-A突出显示所有内容,然后按Ctrl-I应用当前的缩进。否则,现有的选项卡将阻止使用Enter创建的新行中的空格。它还用空格替换现有的选项卡。
topchef 2011年

4
对于C / C ++,还必须更改C / C ++->“代码样式”。到目前为止,这是该款出色软件中最令人讨厌的部分。
2013年

3
更详细地讲,对于C / C ++和Ecplipse 3.6或更高版本,第二步是:“窗口”>“首选项”>“ C / C ++”>“代码样式”>“格式化程序”>“新建”,然后选择任何配置文件名称,确保Open the edit dialog now已启用,单击OK,然后在该Indentation选项卡中,你会看到Tab Policy。将其设置为Spaces Only
加勒特2014年

150

对于默认的文本编辑器:

  • 常规 » 编辑器 » 文本编辑器 » Insert spaces for tabs (选中)

对于PHP:

  • PHP » 代码样式 » 格式化程序 » Tab policy (选择“空格”)
  • PHP » 代码样式 » 格式化程序 » Indentation size (设置为4)

对于CSS:

  • Web » CSS » 编辑器 » Indent using spaces (选择它)
  • Web » CSS » 编辑器 » Indentation size (设置为4)

对于HTML:

  • Web » HTML » 编辑器 » Indent using spaces (选择它)
  • Web » HTML » 编辑器 » Indentation size (设置为4)

对于XML:

  • XML » XML文件 » 编辑器 » Indent using spaces (选择它)
  • XML » XML文件 » 编辑器 » Indentation size (设置为4)

对于Javascript:

  • Javascript » 首选项 » 代码样式 » 格式化程序 » 编辑 » Indentation (选择“仅空格”)
  • 重命名格式化程序设置配置文件以保存它

对于Java:

  • Java » 首选项 » 代码样式 » 格式化程序 » 编辑 » Indentation (选择“仅空格”)
  • 重命名格式化程序设置配置文件以保存它

我在“首选项”的根目录中看不到任何Web或Javascript选项(尽管我确实有可用的Web Perspective),但我想将制表符设置为仅html,css和javascript文件的空间。我正在使用Helios Eclipse for Java Developers,您知道如何获得该选项吗?
丹尼

这些设置是我在Eclipse PDT(PHP开发工具)中看到的。Eclipse PDT建立在Eclipse WTP(Web工具平台)的基础上,其中包括JavaScript开发工具(JSDT)和各种Web格式的源代码编辑。这可能是您所缺少的。
Patrick Fisher

对于Java东西+1是绝对必要的,因为它的默认设置会覆盖一般的文本编辑器设置。
Giulio Piancastelli

对于C,代码样式->格式化程序->编辑->缩进->常规设置->选项卡策略
andrew cooke

1
谢谢!这在火星上效果很好。令人失望的是,“文本编辑器”选项仍然存在,却什么也不做!
paiego,2015年


26

对于CDT

  • 转到 窗口/首选项 » C / C ++ » 代码样式 » 格式化程序 » 新建
  • 创建一个新的,因为不能更改内置配置文件
  • MyProfile (为配置文件选择一个名称)
  • 缩进 » Tab Policy (仅选择空格)

23

对于在此线程上绊脚的人,这只是一个快速提示。有1个地点,其中该设置也可以设置,在您的项目!

Eclipse支持特定于项目的设置,并且某些项目将使用它们自己的非托管选项卡/空间设置,除了当前项目的Properties外,该设置将不会显示在任何地方。

可以通过以下方式进行管理:

  • 程序包资源管理器中右键单击当前项目
  • 属性 » Java代码样式
  • 关闭关闭所有的项目特定选项

通常,仅当您将其他人的代码导入Eclipse中时,这才是一个问题。


19

对于默认编辑器:

窗口 » 首选项 » 编辑器 » 文本编辑器 »Insert spaces for tabs

在此处输入图片说明

对于Java编辑器

窗口 » 首选项 » Java » 代码样式 » 格式化程序 » 编辑 » 缩进 » Tab policy “仅空格”

在此处输入图片说明


9

遇到此问题时,我在所有可以找到的地方都将“使用制表符的空间”设置为true,但我仍在获取制表符。最终是因为在文件的其他地方使用了制表符,并且试图进行智能缩进或令人沮丧的事情。

通过选择文件的全部内容并在Mac上按来解决此问题command+shift+f。这会将给定的格式应用于文件。我不知道Windows上的相同键绑定,但请尝试一下。从那时起,我开始得到预期的行为。


要更模块化地解决此问题,用户还可以进行查找/替换\t(确保启用了正则表达式)并替换为所需数量的空格字符
jlewkovich 2014年

在Windows上格式化文件的键非常相似- Ctrl+Shift+F
A.Alessio

5

用于C / C ++开发人员的Eclipse IDE,版本:Helios Service Release 2

您需要通过按“窗口”->“首选项”->“代码样式”中的“新建”按钮来创建新的配置文件

转到“缩进”选项卡,然后选择“制表符策略=仅空格”


面向C / C ++开发人员的Eclipse IDE,版本:开普勒服务发布1

请按照以下路径创建新的配置文件:“窗口>首选项> C / C ++>代码样式>格式化程序”

转到“缩进”选项卡,然后选择“制表符策略=仅空格”


5

确保检查Java格式化程序,因为它会覆盖“为选项卡插入空格”设置。去:

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

注意:您将需要创建自定义格式才能保存您的配置。


5

我发现该问题的解决方案非常简单,并且始终有效。是改变日食设置文件。

例如(更改HTML缩进大小):


  1. 找到的org.eclipse.wst.html.core.prefs文件应该在your_workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/
  2. 在文件中添加/更改到行:
indentationChar=space

indentationSize=4

1
在Ubuntu 14.04.03 LTS和eclipse 4.5上,我无法更改标识大小始终锁定且不可更改。这解决了我的问题。
TekTimmy 2015年

5

转到窗口 -> 首选项,然后输入tab作为搜索文本(将显示如下对话框):

在此处输入图片说明

转到突出显示的部分以更改选项卡策略。对于“ 编辑器”设置,主要是使用空格缩进(也如上所示)。

对于Formatter设置,您需要编辑有效的配置文件并更新Tab策略(可在` 缩进 -> 常规设置下找到

在此处输入图片说明


3

窗口->首选项-> Java->代码样式->格式化程序->编辑->缩进=“仅空格”


3

在Eclipse中,转到Window » Preferences,然后搜索Formatter

您将看到各种粗体链接,单击每个粗体链接并将其设置use spacestabs

在java formatter链接中,您必须编辑配置文件并spaces only在缩进选项卡中选择选项卡策略。


2

不要错过两个*选项卡策略*仅空格*使用空格缩进换行

我仅检查了后者,并将组合框保留为Checks Only的“仅选项卡”。


2

以eclipse格式xml:

对于标签:

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

对于空间:

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

0
  • 单击窗口»首选项
  • 展开Java»代码样式
  • 单击格式化
  • 点击新
  • 选择配置文件名称
  • 点击确定
  • 点击编辑按钮
  • 单击缩进选项卡
  • 在“常规设置”下,将“制表符”策略设置为:仅空格
  • 单击确定。

0

还可以考虑使用.editorconfig文件:https ://marketplace.eclipse.org/content/editorconfig-eclipse 。不使用Eclipse的人也可以从中受益,在最坏的情况下,它可以作为指导。注意:我不会输入标签与太空大战,而是使用空格FTW :-)


0

作为对其他答案的补充,在Mac OS X上,“首选项”菜单位于Eclipse下,而不是在 Window下(与Windows / Linux Eclipse发行版不同)。到目前为止,其他所有内容都与其他答案所指出的相同。

IE:Java Formatter在以下位置可用:

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

从这里,编辑格式化程序,然后可以在“缩进”下设置选项卡策略。


0

在Mac OS X上的Eclipse Mars(EE)中,我可以在首选项中找到它的唯一方法是打开“首选项”对话框并键入Formatter,然后选择Java-> Code Style-> Formatter。

Java->代码样式无法访问Formatter!


0

而且不要忘记ANT编辑器

由于某些原因,Ant编辑器未显示在'tab'或的搜索结果中'spaces'等都可以错过。

Windows > 首选项下

  • Ant » 编辑器 » 格式化程序 » Tab size: (设置为4)
  • 蚂蚁 » 编辑器 » 格式化程序 » Use tab character instead of spaces (取消选中)

0

您绝对可以使用XML文件来配置编码格式的格式化程序。格式化程序文件可帮助您在团队成员之间使用相同的编码样式和准则。

在使用Eclipse进行编码时,a tab= 2 spaces即使您可能使用了Tab简写键,也将它们添加到下面的设置变量中并会转换为空格。

<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"/>

最好,

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.