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

时间:2009-06-25 11:34:04

标签: eclipse eclipse-plugin whitespace

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

  1. 如何从正在编辑的整个文件中自动删除尾随空格 ? - >答案:使用AnyEdit plugin,可以将其设置为对文件进行任何保存。
  2. 如何仅从我更改的行中自动删除尾随空格 ? - >我不知道并希望得到任何帮助。

14 个答案:

答案 0 :(得分:347)

我假设您的问题与Java代码有关。如果是这种情况,你实际上并不需要任何额外的插件来完成1)。您可以转到首选项 - > Java - >编辑 - >保存操作并将其配置为删除尾随空格

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

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

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

NB#2:该选项似乎又回到了Eclipse Luna中 - Luna Service Release 1a (4.4.1)

答案 1 :(得分:125)

  1. 从正在编辑的整个文件中删除空白
  2. 偏好设置 - > Java - > 编辑 - > 保存操作 - >检查在保存时执行选定的操作 - >检查其他操作 - >单击配置.. - >转到代码组织标签 - >检查删除尾随空格 - >选择所有行

    1. 仅从我更改的行中删除空白
    2. 偏好设置 - > Java - > 编辑 - > 保存操作 - >选中“在保存时执行选定的操作 - >检查格式化源代码 - >选择格式化已编辑的行

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

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

      Eclipse version checked: 4.5.2
      

答案 2 :(得分:72)

您不需要任何插件即可。例如,如果您编写JAVA代码,则可以删除配置保存操作的尾随空格:

Eclipse 3.6

偏好设置 - > Java - > 编辑 - > 保存操作 - >检查在保存时执行选定的操作 - >检查其他操作 - >单击配置.. 按钮。

代码组织标签中,选中删除尾随空格

答案 3 :(得分:46)

如果您将代码格式化程序选项设置为

PyDev 可以通过 Ctrl + Shift + F 执行此操作这样做,或者在保存期间通过

Eclipse - > Window - > 偏好设置 - > PyDev - > 编辑 - > 代码风格 - > Code Formatter

我至少使用这些:

  • 保存前自动格式化
  • 右侧修剪线?
  • 在文件末尾添加新行

答案 4 :(得分:34)

请执行以下操作:

偏好设置 - > Java - > 编辑 - > 保存操作

enter image description here

答案 5 :(得分:19)

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

另一个策略是激活空白的视觉显示,所以至少你会知道你何时添加一些尾随空格。据我所知,虽然没有办法只显示尾随的空格,但我很高兴被证明是错的。

答案 6 :(得分:10)

在紧要关头,对于那些根本不支持删除尾随空格的编辑器(例如XML编辑器),你可以通过执行查找和替换,启用正则表达式,然后找到“[ \ t] + $“并将其替换为”“(空白)。可能有一个更好的正则表达式,但它适用于我而无需安装AnyEdit。

答案 7 :(得分:8)

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

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

如果由于某些原因,您需要在您修改 >的行上保留尾随空格,那么我没有答案,我不确定这种功能存在于任何Eclipse插件中......

答案 8 :(得分:8)

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

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

答案 9 :(得分:5)

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

答案 10 :(得分:4)

使用Unix命令行工具sed有一种非常简单的方法。您可以在Eclipse中创建一个宏来运行它:

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

答案 11 :(得分:3)

正如@Malvineous所说,它不是专业的,而是使用查找/替换方法来删除尾随空间(下面包括标签U + 0009和空格U + 0020)。左下 只需按Ctrl + F(或命令+ F)

即可
  1. 查找 [\t ][\t ]*$
  2. 替换为空白字符串
  3. 使用正则表达式
  4. 全部替换
  5. <强>额外
    要删除前导空格,请找^[\t ][\t ]*而不是[\t ][\t ]*$
    要删除空行,请找到^\s*$\r?\n

答案 12 :(得分:1)

我不知道您问题的第二部分有任何解决方案。原因是不清楚如何定义我改变了。改变了什么时候?在2次保存之间或提交之间...基本上 - 忘了它。

我认为您希望坚持一些准则,但不要触及其余的代码。但该指南应该全面使用,而不是用于咬和碎片。所以我的建议是 - 将所有代码更改为指南:它是一次性操作,但要确保所有开发人员都具有相同的插件(AnyEdit),并具有相同的项目设置。

答案 13 :(得分:1)

我将此命令用于git:git config --global core.whitespace cr-at-eol

删除尾随的^M个字符。