首页 文章

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

提问于
浏览
395

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

  • 如何自动删除尾部空格 from the entire file being edited ? - >答案:使用AnyEdit plugin,可以设置为对文件进行任何保存 .

  • 如何自动删除尾随空格 only from the lines I changed ? - >这个我不知道,也不会感激任何帮助 .

14 回答

  • 110
    • 从正在编辑的整个文件中删除空格:

    首选项 - > Java - >编辑器 - >保存操作 - >检查执行保存时选择的操作 - >检查其他操作 - >单击配置.. - >转到代码组织选项卡 - >选中删除尾随空格 - >选择所有行 .

    • 仅从我更改的行中删除空格:

    首选项 - > Java - >编辑器 - >保存操作 - >选中“在保存时执行选定的操作 - >选中格式化源代码 - >选择格式化已编辑的行 .

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

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

    Eclipse version checked: 4.5.2
    
  • 72

    我假设您的问题与Java代码有关 . 如果's the case, you don' t实际上需要任何额外的插件来完成1) . 您可以转到 Preferences -> Java -> Editor -> Save Actions 并将其配置为 remove trailing whitespace .

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

    为此,右键单击您的项目并转到 Properties -> Java Editor -> Save Actions . 从那里,您可以启用项目特定设置并将其配置为删除尾随空格(以及其他有用的东西) .

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

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

  • 45

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

    Eclipse 3.6

    首选项 - > Java - >编辑器 - >保存操作 - >检查执行保存时选择的操作 - >检查其他操作 - >单击配置..按钮 .

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

  • 28

    PyDev 可以通过Ctrl Shift F执行此操作(如果您设置了代码格式化程序选项),或者在保存期间执行此操作:

    Eclipse - > Window - > Preferences - > PyDev - > Editor - > Code Style - > Code Formatter:

    我至少使用这些:

    • 保存前自动格式化

    • 右边的修剪线?

    • 在文件末尾添加新行

  • 344

    做以下事项:

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

    enter image description here

  • 1

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

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

  • 2

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

  • 8

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

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

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

  • 5

    它是 impossible 现在以通用的方式在Eclipse中完成, but it can be changed 给出了基本的Java知识和一些空闲时间来为此添加基本支持https://bugs.eclipse.org/bugs/show_bug.cgi?id=180349

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

  • 8

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

  • 10

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

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

    正如@Malvineous所说,使用Find / Replace方法去除尾随空间(下面包括U 0009标签和空格U 0020)是不专业的,而是解决方法 .
    只需按Ctrl F(或命令F)

    • Find [\t ][\t ]*$

    • Replace with 空白字符串

    • 使用 Regular expressions

    • Replace All

    extra:
    要删除前导空格,请找到 ^[\t ][\t ]* 而不是 [\t ][\t ]*$
    要删除空行,请找到 ^\s*$\r?\n

  • 18

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

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

  • 1

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

    它会删除尾随的 ^M 个字符 .

相关问题