如何让Eclipse在if和for语句中自动缩进代码块?

时间:2016-02-09 23:25:27

标签: eclipse myeclipse

我试图让Eclipse将项目中的所有选项卡转换为这样的空格:

Java编辑器:

  • 点击窗口»偏好设置
  • 展开Java»代码样式
  • 单击“格式化程序”
  • 点击“修改”按钮
  • 单击“缩进”选项卡
  • 在“常规设置”下,将“标签策略”设置为:仅限空格
  • 点击确定广告以应用更改。

现在我的代码在if和for block中没有任何缩进的格式化,如下所示:

private void addAppointment(Resource resource) {
    if (resource != null) {
    Appt appt1 = new Appt();
    appt1.setTime(new Date());
    resource.setAppointment(appt1);
    }
}

我真的不想在项目的数百个文件中手动修复这个问题,如何在整个项目的if和for块中格式化缩进?

我还应该说,检查活动Formatter配置文件中的“块内语句”复选框。它显示的预览有一个带有缩进体的for块,所以我不知道为什么它没有被应用到我的项目中。

2 个答案:

答案 0 :(得分:1)

@gnac提供了一些不错的选择,除了:

  

同样,你可以在每个类上使用ctrl + shift + f(Source-> Format)来动态格式化

您可以选择项目并执行来源菜单 - > 格式一次性格式化该项目中的所有内容。 (AFAIK没有键盘快捷键。)

答案 1 :(得分:0)

因此,一旦设置了格式化选项,您就有了几个选项。您可以设置首选项以在保存时格式化文件。

Preferences->Java->Editor->Save Actions

但是,如果你有很多文件,这也会很痛苦。类似地,你可以在每个类上使用ctrl + shift + f(Source-> Format)来动态格式化它,再次必须分别对每个文件进行格式化。

在Eclipse内部,您可以使用Search->查找,输入" \ t"在文本框中选择"正则表达式"复选框,然后单击"替换..."按钮。搜索完成后,它会询问您要将其替换为什么。在"中使用"输入4个空格文本域。单击“预览”以查看它将执行的操作,或单击“确定”进行更改。

我会使用find和sed来查找目录中的所有java文件并替换选项卡,尽管这不在eclipse中

find -iname ".java" -exec sed -i.orig 's/\t/    /g' {} +

如果您不在Linux上,可以使用cygwin在Windows上执行相同的操作。