这个问题有两部分,其中一部分我已经有了答案。

如何自动删除尾随空白从整个文件正在编辑?回答:使用AnyEdit插件,它可以设置为在任何保存到文件上。 如何自动删除尾随空白只从行我改变?这个我不知道,很感激你的帮助。


当前回答

从正在编辑的整个文件中删除空白:

首选项-> Java ->编辑器-> Save Actions -> check在保存时执行所选操作-> check附加操作->单击“配置”。->进入代码组织选项卡->检查删除尾随空格->选择所有行。

只从我修改的行中删除空白:

首选项-> Java ->编辑器->保存操作->检查“执行所选的操作保存->检查格式源代码->选择格式编辑的行。

注意,没有必要在formatter页面上单击Configure the formatter settings -所有的代码样式都会自动包括删除尾随的空格。至少我在Formatter配置中找不到这样的设置,而且它对于内置的Java convention、Eclipse、Eclipse 2.1样式以及GoogleStyle都是开箱即用的。

在使用此设置时,显然还需要关闭问题第1部分的解决方案。

Eclipse version checked: 4.5.2, 4.11

其他回答

关于你提到的第二部分问题,我不知道有什么解决办法。原因是不清楚如何定义我改变了。改变了什么时候?只是在两次保存或提交之间……基本上,算了吧。

我假设您希望遵守一些指导原则,但不要修改其余的代码。但该指导方针应全面使用,而不是针对零碎的部分。所以我的建议是——按照指导方针修改所有代码:这是一次性操作,但要确保所有开发人员都有相同的插件(AnyEdit),对项目设置相同。

使用Unix命令行工具sed,有一个非常简单的方法可以做到这一点。你可以在Eclipse中创建一个宏来运行这个:

sed -i 's/[[:space:]]*$//' <filename>

我对git使用了这个命令:git config——global core。空白cr-at-eol

它删除了^M个尾随字符。

您可以在Eclipse中映射一个键,以手动删除整个文件中的尾随空格,但仅在请求时,而不是在保存时自动删除。(首选项/键,然后将一组键映射到文件/删除尾随空白)如果你想清除所有新文件,但保持遗留代码不变,这可能是有用的。

另一种策略是激活空白的可视显示,这样至少可以知道何时添加了尾随空白。据我所知,没有办法只显示尾随的空格,但我很高兴被证明是错误的。

对于php,也有一个选项: