默认情况下,Eclipse缩进并带有一个硬标签字符。 如何将其更改为空格?
-
查看我编写的以下链接,其中包含将选项卡转换为Eclipse中的空格以及Linux VI编辑器中的步骤。
-
相关:如何让Eclipse插入标签而不是空格?
-
@ i3ensays因为标签在不同的编辑器或环境中以不同的方式呈现,而空格总是一致的。
-
@mmmdreg完全是我的观点。空间是僵硬和浪费的。使用选项卡可以让查看者自由地根据需要配置编辑器。我喜欢我的标签显示为2个空格,我的同事4.如果不使用标签,这是不可能的。我和我的同事,在我们各自的编辑器中进行格式化时,我们就是战斗空间;标签不是问题;这就是他们被发明的原因(我怀疑)。
-
@ i3ensays阿门,兄弟!我一直试图让人们理解这个概念超过10年(rizzoweb.com/java/tabs-vs-spaces.html)。真正让我感到震惊的是,作为程序员,你认为每个人都会理解抽象概念(选项卡是代码缩进的抽象,而固定数量的空格是硬编码实现) - 但是,似乎许多程序员无法在这里看到抽象。
-
@ i3ensays您的团队应该有一个编码标准,清楚地说明代码的格式。这可以通过阻止你提到的战斗来节省时间。你应该尽快采用一个,但是这个标准将100%肯定地表明标签永远不会被使用,因为这个神圣的战争是由很久以前的"太空人"赢得的,所以标准对你没有帮助。除了对齐问题之外,仅有空间的一个最大原因是修订控制工具和代码审阅者不必处理这个问题。 20年前,我开始站在这场战斗的一边,但最终学会了拥抱这个空间。
-
原因是人们不可避免地会得到制表符和空格的组合,而在某些编辑器中,代码将无法正确显示。如果每个人都只使用空格,那么这绝不是问题。
-
大家好!我是问题的原始Asker。有足够生命值的人可以关闭这个问题的评论吗?实际的问题已经得到了非常彻底的回答,现在它已经转变为重新诉讼标签与空间战争。 Tucker Carlson几年前曾在Crossfire上奠定了这一论点。正确的答案是:减税。
-
很高兴看到"tab tabtion"的最后一次坚持。是的,空间赢了。继续该计划。自80年代以来,以字节为单位的节省并不是问题,并且其他任何好处都不足以抵消由于必须将标签视为非常特殊的小字符而导致的问题。
-
@StaxMan如果空间获得了决定性的胜利,那么我现在不会查找这个答案并弄清楚如何重新配置??eclipse以在标签上使用空格 - 以符合我团队的政策。在决定性的太空胜利中,eclipse默认只使用空格。 IOW战斗肆虐。
-
@emory唉。你是对的。 Eclipse默认值是我的烦恼之一。然后,IdeaJ也有自己的特殊默认值,如"神奇地扩展线条"。
-
对于JavaScript特定情况,请参阅stackoverflow.com/q/8993295/912046,它将我重定向到此处。
-
@emory这个问题和你的团队的政策表明空间赢了。可能只有人在Eclipse开发团队中使用标签。也许他们没有。
-
我在2011年,在我的小学生出生之前问了这个问题。之前java介绍了try-with-resources。每隔几个月我就会收到一封电子邮件,说有人评论过它。击败死马需要或多或少的SO声誉而不是关闭问题?
Java编辑器
点击窗口?喜好
扩展Java?代码风格
单击格式化程序
单击"编辑"按钮
单击"缩进"选项卡
在"常规设置"下,将"选项卡"策略设置为:Spaces only
点击确定广告恶心以应用更改。
[注意:如果需要,使用新名称保存配置文件作为默认配置文件无法覆盖。]
默认文本编辑器
版本3.6之前:
1
| Window->Preferences->Editors->Text Editors->Insert spaces for tabs |
版本3.6及更高版本:
点击窗口?喜好
展开一般?编者
单击"文本编辑器"
选中"插入空格"选项卡
点击确定广告恶心以应用更改。
请注意,默认文本编辑器用作Eclipse中许多非Java编辑器的基础。令人惊讶的是,这种设置直到3.3才可用。
C / C ++
点击窗口?喜好
展开C / C ++?代码风格
单击格式化程序
单击"新建"按钮以创建新配置文件,然后单击"确定"继续
单击"缩进"选项卡
在"常规设置"下,将"选项卡"策略设置为:Spaces only
点击确定广告恶心以应用更改。
HTML
点击窗口?喜好
展开网络? HTML文件
单击编辑器
在格式化下,选择缩进使用空格单选按钮
单击"确定"以应用更改。
CSS
遵循相同的HTML说明,但选择CSS文件而不是HTML文件。
JSP
默认情况下,JSP文件遵循HTML文件的格式设置首选项。
XML
XML文件间距在首选项中配置。
点击窗口?喜好
展开XML? XML文件
单击编辑器
使用空格选择缩进
如果需要,您可以指定缩进大小:缩进的空格数。
-
对于那些安装了MyEclipse的人或者在Eclipse之上构建的任何其他IDE,您可能有另一个编辑器覆盖您的设置。这就是MyEclipse和JavaScript的情况。我在文本编辑器中启用了"为标签插入空格"设置,但仍然使用标签而不是空格。我打算将它称为一天并将其作为一个bug写下来,但后来我在"Associated Editors"列表中看到了第二个JavaScript(* .js)文件编辑器。
-
这可能是一个有用的提示,但如果您遇到相同的行为,请检查该文件是否包含任何其他关联的编辑器,因为它们可能会覆盖您的设置。为此,请转到"窗口">"首选项">"常规">"编辑器">"文件关联">,然后查找在该列表中破坏您的日期的文件扩展名>单击它并查看下面的"关联编辑器"列表
-
对于JavaScript,我看到了Text Editor和MyEclipse JavaScript Editor,它被标记为默认值。因此,可以在此处完成两件事之一,您可以将文本编辑器设置为默认值,也可以更新MyEclipse JavaScript编辑器设置。我选择了后者并转到:Window> Preferences> MyEclipse> Files and Editors> JavaScript> Code Style> Formatter> Edit ...> Tab策略:希望这有帮助!
-
对于XML,我没有相关的编辑器,但我必须转到Window> Preferences> XML> XML Files> Editor
-
对于现有Java文件,按Ctrl-A突出显示所有内容,然后按Ctrl-I应用当前缩进。否则,现有选项卡将阻止使用Enter创建的新行中的空格。它还用空格替换现有选项卡。
-
@topchef这正是发生在我身上的事!如上所述进行了所有设置,但是当我在新行上按Tab键或Ctrl + I时,它会显示硬标签。但正如你所说,现有的标签是罪魁祸首。谢谢 :)
-
在Eclipse 3.7.1中,第一行应指定"仅限空格"是下拉菜单选项。
-
@topchef您正在谈论的选项是特定于编辑器的。例如它可用于Eclipse Web工具平台的javascript编辑器(在我的例子中),它不适用于所有文件类型。特别是当我对ColdFusion进行cfeclise时。
-
对于C / C ++,还必须改变C / C ++ - >"代码样式"。到目前为止,这是一个非常讨厌的软件。
-
我很惊讶有多少人不理解选项卡的价值并且坚持用空格替换它们(参见我对OP问题的评论)。
-
更详细的是,对于C / C ++和Ecplipse 3.6或更高版本,第二步是:Window> Preferences> C / C ++> Code Style> Formatter> New,然后选择任何Profile name,确保Open the edit dialog now已启用,命中OK,然后在Indentation标签下,您会看到Tab Policy。将其设置为Spaces Only。
-
对于Mac,首选项位于"Eclipse"菜单选项下。
-
scala的任何说明?我在通用编辑器中进行了更改,它们似乎对我的scala文件没有生效
-
C / C ++:多行#define宏中的选项卡不会被Eclipse的自动格式化程序取代,大概是因为转义的换行符。使用空格进行正则表达式查找/替换选项卡是必要的。
-
@John +1。我感到困惑,因为我已经配置了所有使用空格而不是标签的东西,但我的JSP文件仍然格式不正确。这个答案和你的评论指向了我特定于HTML的编辑器......
-
当我按照这些说明操作时,"确定"按钮变灰,因此我无法使用它们。有什么想法吗?
-
为通用编辑器设置它应该为所有编辑器设置它,Eclipse设置是疯狂的。
-
Richard Hendrix对此不会感到高兴。
-
这些设置可能会覆盖"标签空间"行为的另一个地方是"项目特定设置"。在项目设置被提交到存储库的遗留项目中,它发生在我身上。在我的例子中,我必须更改项目>属性> Java代码样式>格式化程序中的设置。它应该类似于本答案中描述的其他编辑器和设置。
-
这就是我们如何在STS中使用eclipse 3.8
对于默认文本编辑器:
-
常规>编辑器>文本编辑器>为选项卡插入空格(选中)
对于PHP:
-
PHP>代码样式>格式化程序>选项卡策略(选择"空格")
-
PHP>代码样式>格式化程序>缩进大小(设置为4)
对于CSS:
-
Web> CSS>编辑>使用空格缩进(选择它)
-
Web> CSS>编辑器>缩进大小(设置为4)
对于HTML:
-
Web> HTML>编辑器>使用空格缩进(选择它)
-
Web> HTML>编辑器>缩进大小(设置为4)
对于XML:
-
XML> XML文件>编辑器>使用空格缩进(选择它)
-
XML> XML文件>编辑器>缩进大小(设置为4)
对于Javascript:
-
Javascript> Preferences> Code Style> Formatter> Edit> Indentation(选择"仅限空格")
-
重命名格式化程序设置配置文件以保存它
对于Java:
-
Java> Preferences> Code Style> Formatter> Edit> Indentation(选择"仅限空格")
-
重命名格式化程序设置配置文件以保存它
-
我在Preferences的根目录中看不到Web或Javascript选项(我确实有Web Perspective可用),我想将标签设置为仅用于html,css和javascript文件的空格。我正在使用Helios Eclipse for Java Developers,我知道如何获得该选项?
-
这些设置是我在Eclipse PDT(PHP开发工具)中看到的。 Eclipse PDT构建于Eclipse WTP(Web工具平台)之上,其中包括JavaScript开发工具(JSDT)和各种Web格式的源编辑。这可能是你所缺少的。
-
Java内容的+1是绝对必要的,因为它的默认设置会覆盖常规文本编辑器设置。
-
for C,Code Style - > Formatter - > Edit - > Indentation - > General Settings - > Tab Policy
-
不适合Eclipse PDT Luna 4.4
-
另外要小心更新具有自己的格式化程序的特定其他编辑器,例如Ant文件编辑器与XML编辑器等等。
-
谢谢!这在火星上很有效。令人失望的是文本编辑器选项存在但什么都不做!
从更改选项卡到eclipse中的空格:
Window-> Preferences-> Java-> Code Style-> Formatter-> Edit-> Indentation ="Spaces Only"
-
对于XML,xml - > xml文件 - >编辑器,然后使用空格选择缩进,缩进大小为2。
对于CDT:转到窗口/首选项 - > C / C ++ - >代码样式 - >格式化程序 - >新建(创建一个新的,因为内置的配置文件无法更改) - > MyProfile(为配置文件选择一个名称) - >缩进,选项卡策略 - >仅限空格
祝好运
只是快速提示人们绊倒这个线程;在您的项目中还有一个可以设置此设置的地方!
Eclipse支持特定于项目的设置,并且一些项目将使用他们自己的,未管理的选项卡/空间设置,除了当前项目属性之外,这些设置不会显示在任何位置。
这可以通过以下方式管理:
-
在Package Explorer中右键单击当前项目;
-
属性 - > Java代码样式
-
关闭所有项目特定选项
如果您将其他人的代码导入Eclipse,通常只会出现问题。
对于默认编辑器:
1
| Window->Preferences->Editors->Text Editors->Insert spaces for tabs |
对于Java编辑器
1
| Window->Preferences->Java->Code Style->Formatter->Edit->Indentation-> Tab policy ="Spaces Only" |
当我遇到这个问题时,我已经"使用空格中的标签"设置为真我能找到的地方,但我仍然得到了标签。它最终是因为标签在文件的其他地方使用,它试图做智能缩进或令人沮丧的事情。
通过选择文件的全部内容并在mac上按command+shift+f解决了问题。这会将给定的格式应用于文件。我不知道Windows上的键绑定相同,但尝试一下。那时我开始得到预期的行为。
-
对于此问题的更加模块化的修复,用户还可以执行\t的查找/替换(确保启用正则表达式)并替换为所需的空格字符数
请务必检查java格式化程序,因为它会覆盖"为标签插入空格"设置。去:
Java->Code Style"->Formatter->Edit->Identation
注意:您需要创建自定义格式才能保存配置。
用于C / C ++开发人员的Eclipse IDE,版本:Helios Service Release 2
您需要通过按"窗口 - >首选项 - >代码样式"中的"新建"按钮来创建新的配置文件
转到缩进选项卡,然后选择"选项卡策略=仅限空格"
用于C / C ++开发人员的Eclipse IDE,版本:Kepler Service Release 1
按照以下路径创建新的个人资料:
"窗口>首选项> C / C ++>代码样式>格式化程序"
转到缩进选项卡,然后选择"选项卡策略=仅限空格"
我发现解决方案这个问题很简单,总是有效。它是改变eclipse设置文件。
例如(更改HTML缩进大小):
找到org.eclipse.wst.html.core.prefs文件,该文件应位于your_workspace / .metadata / .plugins / org.eclipse.core.runtime / .settings /
添加/更改到文件行:
indentationChar =空间
indentationSize = 4
-
在Ubuntu 14.04.03 LTS和eclipse 4.5上我无法改变标识大小总是被锁定而且不可更改。这解决了我的问题。
转到Window > Preferences并输入tab作为搜索文本(将显示如下对话框):
转到突出显示的部分以更改选项卡策略。 对于Editor设置,它主要是Indent using spaces(也在上面显示)。
对于Formatter设置,您需要编辑活动配置文件并更新Tab policy(在Indentation > General Settings下可用:
在Eclipse中转到Window->Preferences然后搜索Formatter。
你会看到各种粗体链接,
点击每个粗体链接
并将其设置为use spaces而不是tabs。
在java formatter链接中,您必须编辑配置文件
并在缩进选项卡中选择选项卡策略spaces only
Window-> Preferences-> Java-> Code Style-> Formatter-> Edit-> Indentation ="Spaces Only"
不要错过两者的Tab政策
*仅限空格
*使用空格缩进包裹的线条
我只检查了后一种情况,并将Combobox保留为Tabs Only,这使CheckStyle失败了..
仅供参考,我在谈论首选项> Java> Formatter>编辑...
在eclipse格式xml:for tab:
1
| <setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/> |
对于空间:
1
| <setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/> |
在Mac OS X上的eclipse mars(EE)中,我在首选项中找到它的唯一方法是打开Preference对话框并键入Formatter,然后选择Java-> Code Style-> Formatter。
Java-> Code Style无法访问Formatter!
不要忘记ANT编辑器
出于某种原因,Ant编辑器没有出现在"标签"或"空格"的搜索结果中,因此可能会错过。
在Windows>首选项下
-
Ant>编辑器> Formatter>选项卡大小:(设置为4)
-
Ant>编辑器> Formatter>使用制表符而不是空格(取消选中)
-
点击窗口?喜好
-
扩展Java?代码风格
-
单击格式化程序
-
点击新的
-
选择配置文件名称
-
点击确定
-
单击"编辑"按钮
-
单击"缩进"选项卡
-
在"常规设置"下,将"选项卡"策略设置为:仅限空格
-
单击
还要考虑使用.editorconfig文件:https://marketplace.eclipse.org/content/editorconfig-eclipse。
不使用Eclipse的人也可能从中受益,在最坏的情况下,它可以作为指导。
注意:我不会进入标签vs太空战争,但使用空格FTW :-)
作为对其他答案的补充,在Mac OS X上,"首选项"菜单位于Eclipse下,而不是Window(不同于Windows / Linux Eclipse发行版)。其他一切仍然与过去这一点的其他答案所指出的相同。
IE:Java Formatter可用于:
1 2 3 4 5
| Eclipse > | # Not Window!
Preferences > |
Java > |
Code Style > |
Formatter | |
从这里,编辑格式化程序,可以在"缩进"下设置选项卡策略。