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

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

  1. 如何自动删除尾随空白从整个文件被编辑?答:使用AnyEdit插件,它可以被设置为在任何保存到文件时这样做。
  2. 如何自动删除尾随空白只是从我改变的台词?这个我不知道,很感激你的帮助。
193162 次浏览

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

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

如果,出于某些原因,你需要在被你修改的行上保留尾随空格,那么我没有答案给你,而且我不确定任何Eclipse插件中都存在这种特性……

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

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

我想你的问题是关于Java代码的。如果是这样的话,你实际上不需要任何额外的插件来完成1)。你可以只去首选项-> Java ->编辑器->保存动作并将其配置为移除尾随空格

听起来你也想让这成为一个团队范围内的设置,对吗?为了简化工作并避免每次有新的工作空间时都要记住设置它,您可以将保存操作设置为项目特定的首选项,该首选项与代码一起存储到SCM中。

为了做到这一点,右键单击你的项目并转到> Java编辑器->保存动作。从那里,您可以启用特定于项目的设置,并将其配置为删除尾随空格(以及其他有用的东西)。

:此选项已在Eclipse Kepler(4.3)及后续版本中删除。

注2:选项似乎回到Eclipse Luna - Luna Service Release 1a (4.4.1)

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

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

  1. 删除空白从整个文件被编辑:

首选项 -> Java -> 编辑器 -> 拯救行动 -> check 在保存时执行所选操作 -> check 额外的行动 ->单击配置. . ->进入代码组织选项卡-> check 移除尾随空格 ->选择所有行

  1. 删除空白只是从我改变的台词:

首选项 - > Java - > 编辑器 - > 拯救行动 - >检查“在保存时执行所选操作 - >检查格式源代码 - >选择格式化编辑过的行

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

当使用这个设置时,你显然还需要关掉问题第一部分的解决方案。

Eclipse version checked: 4.5.2, 4.11

现在在Eclipse中以通用的方式完成它是不可能的,具有基本Java知识的但这是可以改变的和一些空闲时间来为这个https://bugs.eclipse.org/bugs/show_bug.cgi?id=180349添加基本支持

依赖问题:https://bugs.eclipse.org/bugs/show_bug.cgi?id=311173

PyDev中可以通过Ctrl+转变+F来实现(如果你设置了代码格式化器选项),也可以通过在储蓄来实现:

Eclipse - > 窗口 - > 首选项 - > PyDev中 - > 编辑器 - > 代码风格 - > 代码格式化程序:

我至少使用这些:

  • 保存前自动格式化
  • 对吗?
  • 在文件末尾添加新行

在紧急情况下,对于那些根本不支持删除尾随空格的编辑器(例如XML编辑器),您可以通过执行查找和替换操作将其从所有行中删除,启用正则表达式,然后查找“[\t]+$”并将其替换为“”(空白)。可能有一个更好的正则表达式来做到这一点,但它为我工作,不需要安装AnyEdit。

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

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

你不需要任何插件来这样做。例如,如果你编写JAVA代码,你可以在配置保存操作时删除尾随空白:

Eclipse 3.6

首选项 -> Java -> 编辑器 -> 拯救行动 ->检查在保存时执行所选操作 ->检查额外的行动 ->单击配置. .按钮。

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

做以下:

__abc0 -> __abc1 -> __abc2 -> __abc3

enter image description here

对于php也有一个选项:enter image description here

正如@Malvineous所说,使用查找/替换方法删除尾随空格(下面包括制表符U+0009和空格U+0020)并不专业,而是一种变通方法。
只需按Ctrl + F(或command + F)

  1. 找到 [\t ][\t ]*$
  2. 替换为空白字符串
  3. 使用正则表达式
  4. 替换所有
< p > 额外的:
要移除前导空格,找到^[\t ][\t ]*而不是[\t ][\t ]*$
要删除空行,找到^\s*$\r?\n

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

它删除尾随的^M字符。