2010-04-14 46 views
22

有没有什么办法说服Eclipse使用制表符而不是空格来缩进其内置的Java内容协助提议(例如创建一个覆盖父类中方法的空方法)?如何让Eclipse为Java内容辅助插入制表符而不是空格?

我可以找到唯一与外观相关的设置是在Windows/Preferences/General/Editors/Text Editors /插入标签的空白处,并且此设置未被选中。

(编辑:一些海报已经指出的Java /代码样式/格式化/缩进/标签的政策,这被设置为“仅标签”)

目前,我记得要选择它们并重新格式为<Ctrl>+<Shift>+<F>

+1

但是你有一个活动的格式化程序,在其常规设置中“选项卡策略”设置为“仅限空间”?检入首选项/ Java /代码样式/格式器/按钮编辑。 – VonC 2010-04-14 10:32:34

+0

@Simon不用介意:如果格式化工作正常,格式化程序就很好。我添加了一个引用可能与您的问题相关的错误的答案。 – VonC 2010-04-14 10:44:00

+0

@VonC:是的,并且“标签策略”设置设置为“仅限制表” – 2010-04-14 10:45:06

回答

7

这似乎是目前一个bug(不固定在3.5列车):

bug 44755(征求意见,同时也适用于其他的重构JDT操作)

也与bug 231832,涉及错误在AST重写...

我相信这是ASTRewrite的问题,而不是与ASTRewrite的客户端。 我们必须确保代码格式化程序设置可用于重写 部分。
移至JDT/Core进行调查。

检测在3.4晚,还没有固定的3.5

+1

4.5.0,仍然不固定.... – 2015-09-14 13:48:46

2

有在的Java /代码样式/格式化的喜好来看看
创建自己的个人资料,并设置“缩进” /“选项卡政策”到“标签只有”

+1

谢谢,但这已经设置 – 2010-04-14 10:46:26

+0

它适用于我。 Thanxxx。 – LonliLokli 2011-05-29 17:50:15

1

首选项>的Java>代码样式>格式化>编辑>缩进>仅对前导缩进复选框使用选项卡

+0

我没有看到这个确切的设置,但同一对话框中的“选项卡策略”设置设置为“仅限制表”。 – 2010-04-14 10:47:29

+0

我发现在Windows Eclipse 3.5.1 – 2010-04-15 01:51:35

1

我设置的方式是在编辑器 - >保存动作偏好设置中启用“格式源代码”。

这样它就会在保存时重新格式化源代码。

+0

聪明,但我不想这样做,因为它会在源代码控制差异中引入太多的噪音。 – 2010-04-14 10:46:06

+0

确定这里是另一个脑波(虽然它可能有点乏味) 转到java-> Editor-> Templates,编辑您使用的每个模板并通过粘贴到可以将标签重新格式化为空格的编辑器来修复它们,然后粘贴返回固定版本。 – 2010-04-14 11:01:40

+0

我最感兴趣的模板似乎是在其他地方定义的(在Java /代码风格/代码模板/代码/方法体),但这些只是给出了方法的主体,并且根本没有缩进! – 2010-04-14 11:21:41

1

我也有这个问题。这个问题原来是某些配置被埋在我的工作区的某个地方。我创建了一个新的工作区并重新导入了我的项目,并且我的选项卡不再被转换为空格。

1

我确定编辑>智能插入模式没有被选中,这似乎帮助我配置缩进和格式设置不起作用。运行Eclipse 3.7.0。

+0

谢谢,对我来说也是如此。完全随机。 – Nande 2014-08-08 00:50:03

23

感谢Simon Nickerson的评论,我发现了这个解决方案,这是他的编辑中原始海报的意思。找到设置后,我看到他们在说什么。然而,从这条路开始就走了一段路,所以它没有给那些刚接触Eclipse的人或与我一样远离它几年的人给出明确的答案,就像我一样。所以我会在这里给出完整的路径:

  1. 转到项目 - >属性。
  2. 在结果框中,转到“Java代码样式” - >“格式化程序”。
  3. 单击方框右上方的“配置工作区设置”链接。
  4. 单击名称旁边的编辑按钮。
  5. 将“标签策略:”下拉框更改为“仅限空格”,因为标签是邪恶的,并且不可避免地导致格式不正确的代码。 > :-(这也是您可以真正影响文件中缩进大小和制表大小的地方
  6. 您将需要更改框顶部的“配置文件名称”以保存更改
  7. 谢天谢地,一旦你点击“确定”,Eclipse就会将你的配置文件用于你当前的项目,这样你就完成了这一步。

现在,真正打破的是这些设置会覆盖更多的预先界面,用于在“Windows/Preferences/General/Editors/Text Editors /为制表符插入空格”中更改类似声音的设置。对于编辑器相对较新的人来说,这看起来就像设置默认tabs = spaces设置的地方。找到真正的答案r,很显然,这只是用于一般文本编辑,并且需要在配置文件中为当前语言设置语言特定的设置。不过,这应该会让noobs更清晰一些。 ;-)

+0

谢谢。这有很大的帮助。 =) – adelarsq 2013-02-01 13:58:22

+2

这是如何回答这个问题? OP希望使用*选项卡*,但此答案详细说明如何使用*空格*。即使您在第5点选择“仅限制表”,这也无济于事(请参阅OP的评论:http://stackoverflow.com/questions/2636589/how-can-i-get-eclipse-to-insert -tabs-INSTEAD-OF-空间换Java的内容辅助#comment2650643_2636589)。 – 2014-01-31 12:48:32

+1

@PeterJaric不要问偏执狂。 Bigots只是在探索他们的偏见。 – Val 2014-07-11 17:13:46

1

即使在文本编辑器首选项中设置了插入空格以供制表符选项并将我的格式化器配置文件选项卡策略设置为空格后,Eclipse仍然插入了制表符。只有从文件中删除所有选项卡后,才能正确插入制表符的空格。发现这一点之后,我确定在Text Editor偏好设置中插入空格以供制表符选项似乎没有任何效果,并且它是对格式化器配置文件选项卡策略的更改,可实现所需的结果。

0

另一种解决方案,“为我工作”,即使其他的解决方案没有工作(版本:3.8.1):

首选项>的Java>代码样式>格式化>编辑>缩进>使用空格缩进包装行 - 设置未选中

这实质上是“智能标签”选项。它适用于格式化程序,但它错误地将代码生成设置为仅使用空格。烦人的是,解决方案打破了格式化程序。

相关问题