如何自动删除Eclipse中的尾随空白?

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

  1. 如何从正在编辑的整个文件中自动删除尾随的空格? – >答:使用AnyEdit插件 ,可以将其设置为在任何文件上保存。
  2. 如何只从我改变的行自动删除尾随的空白? – >这我不知道,将不胜感激任何帮助。
  1. 从正在编辑的整个文件中删除空格:

首选项 – > Java- > 编辑 – > 保存动作 – >检查在保存时执行所选操作 – >检查其他操作 – >单击configuration..- >转到代码pipe理选项卡 – >检查删除末尾的空白 – >select所有行

  1. 只从我改变的行删除空格:

首选项 – > Java – > 编辑器 – > 保存操作 – >选中“ 在保存时执行所选操作 – >检查格式源代码 – >select格式化编辑的行

注意,没有必要单击“格式化程序”页面上的“configuration格式化程序设置” – 所有代码样式都会自动包括删除结尾空白。 至less我在Formatterconfiguration中找不到这样的设置,并且它为内置的Java约定,Eclipse,Eclipse 2.1样式以及GoogleStyle提供了开箱即用的function 。

当使用这个设置时,显然还需要closures问题第一部分的解决scheme。

Eclipse version checked: 4.5.2 

我假设你的问题是关于Java代码。 如果是这样的话,你实际上并不需要额外的插件来完成1)。 你可以去首选项 – > Java – >编辑器 – >保存操作,并将其configuration为删除结尾的空白

通过它的声音,你也想使这个团队的设置,对不对? 为了让生活更轻松,避免在每次有新的工作区时记住设置,可以将保存操作设置为项目特定的首选项,并将其与代码一起存储到SCM中。

为了做到这一点,右键单击您的项目,并转到属性 – > Java编辑器 – >保存操作 。 从那里你可以启用项目特定的设置,并configuration它删除尾随空白(除其他有用的东西)。

注意 :这个选项在Eclipse Kepler(4.3)和后续版本中已经被删除。

NB#2:这个选项似乎回到了Eclipse Luna – Luna Service Release 1a (4.4.1)

你不需要任何插件来这样做。 例如,如果您编写JAVA代码,则可以清除configuration保存操作的尾部空白:

Eclipse 3.6

首选项 – > Java – > 编辑 – > 保存操作 – >检查在保存时执行所选操作 – >检查其他操作 – >单击configuration..button。

代码组织选项卡中,选中删除尾随空格

PyDev可以通过Ctrl + Shift + F来完成,如果你设置了代码格式化选项,或者在保存期间

Eclipse – > Window – > Preferences – > PyDev – > Editor – > Code Style – > Code Formatter

我至less使用这些:

  • 保存前的自动格式
  • 正确的修剪线?
  • 在文件末尾添加新行

做以下事情:

首选项 – > Java – > 编辑器 – > 保存操作

在这里输入图像描述

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

另一个策略是激活空白的可视化显示,所以至less你会知道什么时候添加一些尾随的空白。 据我所知,没有办法只显示尾随的空格,但我很乐意被certificate是错误的。

我也会说AnyEdit。 它没有提供这个特定的function。 但是,如果您和您的团队在每个保存操作中都使用AnyEditfunction,那么当您打开一个文件时,它不能有任何尾随的空格。

因此,如果修改此文件,并且添加了新的尾随空格,则在保存操作期间,AnyEdit将仅删除这些新空格,因为它们是此文件中唯一的尾随空格。

如果由于某些原因,你需要保留没有修改过的行的尾部空格,那么我没有任何答案,我不确定这个function是否存在于任何Eclipse插件中。

现在不可能在Eclipse中以通用的方式实现它, 但是可以根据基本的Java知识和一些空闲时间来改变它 ,为这个https://bugs.eclipse.org/bugs/show_bug.cgi添加基本​​的支持。; ID = 180349

相关问题: https : //bugs.eclipse.org/bugs/show_bug.cgi?id = 311173

对于那些不支持删除尾随空白(例如XML编辑器)的编辑来说,可以通过查找和replace来将其从所有行中删除,启用正则expression式,然后find“[\ t] + $“replace为”“(空白)。 有可能是一个更好的正则expression式,但它适用于我而无需安装AnyEdit。

对于PHP也有一个选项: 在这里输入图像描述

用sed这个Unix命令行工具有一个很简单的方法。 你可以在Eclipse中创build一个macros来运行这个macros:

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

正如@Malvineous所说,这不是专业的,而是使用查找/replace方法删除尾部空格(下面包括标签U + 0009和空白U + 0020)的解决方法。
只需按Ctrl + F(或命令+ F)

  1. find [\t ][\t ]*$
  2. 空白stringreplace
  3. 使用正则expression式
  4. 全部replace

额外:
要删除前导空间,请查找^[\t ][\t ]*而不是[\t ][\t ]*$
要删除空白行,请查找^\s*$\r?\n

我不知道你的问题的第二部分的任何解决scheme。 原因是不清楚如何定义我改变了 。 什么时候改变? 只是在2次保存之间或提交之间…基本上 – 忘记它。

我假设你想坚持一些指导原则,但不要触及代码的其余部分。 但是指导方针应该全面使用,而不是叮咬和碎片。 所以我的build议是 – 将所有代码更改为指导原则:这是一次性的操作,但要确保所有的开发人员具有相同的项目设置相同的插件(AnyEdit)。

我用这个命令git: git config --global core.whitespace cr-at-eol

它删除正在拖尾的^M字符。