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

Jan*_*ski 413 eclipse whitespace

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

  1. 如何从正在编辑的整个文件中自动删除尾部空格?- >答案:使用AnyEdit插件,可以设置为在保存到文件时执行此操作.
  2. 如何仅从我更改的行中自动删除尾随空格? - >这个我不知道,也不会感激任何帮助.

小智 348

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

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

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

注意:Eclipse Kepler(4.3)和后续版本中已删除此选项.

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

  • 对于PyDev中的Python,我已经为此做了一个功能请求.请参阅:https://sourceforge.net/tracker/?func = entertail&aid = 2906537&group_id = 85796 &atid = 577332 (14认同)
  • 适合Java; 对C/C++也有好处; 但不适用于PyDev中的Python. (7认同)
  • 仅供参考... PHP的相同概念.首选项 - > PHP - >编辑器 - >保存操作. (5认同)
  • 谢谢,gcastro - 它比AnyEdit更容易.不幸的是,这是为整个文件编辑..仍然不知道如何只为我改变的行 - 这看起来现在可能是不可能的. (2认同)
  • 我不知道,但无法让这个"功能"起作用 (2认同)

Dan*_*dei 135

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

Preferences- > Java- > Editors- > Save Actions- >检查Perform the selected actions on save- >检查Additional actions- >单击Configure..- >转到Code organizing选项卡 - >检查Remove trailing whitespace- >选择All lines.

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

Preferences- > Java- > Editor- > Save Actions- >勾选" Perform the selected actions on save- >检查Format source code- >选择Format edited lines.

请注意,没有必要单击Configure the formatter settings on the Formatter page- 所有代码样式自动包括删除尾随空格.至少我在Formatter配置中找不到这个设置,它开箱即用,内置Java约定,Eclipse,Eclipse 2.1样式以及GoogleStyle.

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

Eclipse version checked: 4.5.2, 4.11
Run Code Online (Sandbox Code Playgroud)

  • 那么其他编辑器 - PHP,Python,Javascript呢? (14认同)

Dav*_*ave 73

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

Eclipse 3.6

Preferences- > Java- > Editors- > Save Actions- >检查Perform the selected actions on save- >检查Additional actions- >单击Configure..按钮.

Code organizing选项卡中,选中Remove trailing whitespace

  • 这仅适用于.java文件,我通常使用十几个扩展 (7认同)
  • 这是第一个明确建议在"删除尾随空格"的"附加操作"下查找的答案.谢谢. (4认同)

Cia*_*tic 46

如果您设置了代码格式化程序选项,PyDev可以通过Ctrl+ Shift+ F执行此操作,或者通过during saving:

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

我至少使用这些:

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

  • PyDev Code Formatter中有一个新选项:在保存时,仅在更改的行中应用格式. (7认同)
  • 这不包括仅从编辑行中剥离空间*的问题.它也是一个危险的功能,因为它运行*全部*代码格式化程序选项,未经检查的选项与"忽略/不使用"不同.例如:如果未选中"逗号后使用空格",则代码格式化程序将*删除*这些空格而不是忽略该选项. (5认同)
  • -1给出一个太一般的答案 - 问题只是关于白色空间; 启用自动代码格式化意味着您的源代码提交将开始在其中包含未计划的内容,从而导致混乱的历史记录,因为提交包含与提交标题无关的内容. (2认同)

Sum*_*ngh 35

做以下事项:

Preferences- > Java- > Editor- >Save Actions

在此输入图像描述


Ken*_*ena 19

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

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


Mal*_*ous 11

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


Rom*_*las 8

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

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

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

  • 是的,我想保留不被我修改的行上的空格.这是Intellij Idea的默认行为(删除行上的空格,将它们保留在其他行上),我想在Eclipse中得到它.谢谢你的回答. (4认同)

ana*_*nik 8

这是不可能做到这一点在Eclipse中通用的路要走,但它是可以改变基本的Java知识和一些自由时间来增加对这个基本支持给予https://bugs.eclipse.org/bugs/show_bug.cgi? ID = 180349

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


Hey*_*Man 5

对于PHP,还有一个选项:在此输入图像描述