这个问题分为两个部分,其中一个我已经有了答案。
- 如何从正在编辑的整个文件中自动删除结尾的空格? ->答案:使用AnyEdit插件 ,可以将其设置为在保存到文件时执行此操作。
- 如何仅从我更改的行中自动删除结尾的空格? ->我不知道,将不胜感激。
#1楼
我也会说AnyEdit。 它不提供此特定功能。 但是,如果您和您的团队在每次保存操作时都使用AnyEdit功能,则在打开文件时,该文件不得包含任何尾随空格。
因此,如果您修改此文件并添加新的尾随空格,则在保存操作期间,AnyEdit将仅删除这些新空格,因为它们是此文件中仅有的尾随空格。
如果由于某种原因,你需要保持尾随空格上没有被修改过的线,那我也没有答案给你,我不知道这种功能在任何Eclipse插件存在...
#2楼
对于您问题的第二部分,我不知道有任何解决方案。 原因是不清楚如何定义我已更改 。 何时更改? 两次保存之间或两次提交之间...基本上-算了。
我假设您想遵循一些准则,但不要触摸其余的代码。 但该指南应整体使用,而不是一丁点。 因此,我的建议是-将所有代码更改为准则:这是一次性的操作,但请确保所有开发人员都具有相同的插件(AnyEdit),并且该项目具有相同的设置。
#3楼
我认为您的问题是关于Java代码的。 如果是这样,您实际上不需要任何额外的插件即可完成1)。 您可以转到“首选项”->“ Java”->“编辑器”->“保存操作”,然后对其进行配置以删除尾随空格 。
听起来,您还希望将其设置为团队范围的设置,对吗? 为了使生活更轻松,并且避免每次都拥有新工作区时都必须记住对其进行设置,可以将保存操作设置为项目特定的首选项,该首选项随代码一起存储到SCM中。
为此,右键单击您的项目,然后转到Properties-> Java Editor-> Save Actions 。 从那里,您可以启用项目特定的设置并将其配置为删除尾随空格(以及其他有用的东西)。
注意 :此选项已在Eclipse Kepler(4.3)和后续发行版中删除。
注意2:该选项似乎在Eclipse Luna中恢复Luna Service Release 1a (4.4.1)
#4楼
您可以在Eclipse中映射一个键,以手动删除整个文件中的尾部空格,但是只能在请求时才删除,而不是在保存时自动删除。 (“首选项/键”,然后将一组键映射到“文件/删除尾随空白”)如果要清理所有新文件,但保持原有代码不变,这将很有用。
另一种策略是激活空白的可视显示,所以至少在添加尾随空白时您会知道。 据我所知,虽然没有办法只显示尾随空格,但是我很高兴被证明是错误的。
#5楼
请执行以下操作:
首选项 -> Java- > 编辑器 -> 保存操作
#6楼
- 从要编辑的整个文件中删除空格:
首选项 -> Java- > 编辑器 -> 保存动作 ->检查在保存时执行选定的动作 ->检查其他动作 ->单击配置。- >转到代码组织选项卡->检查删除尾随空白 ->选择所有行 。
- 仅从我更改的行中删除空格:
首选项 -> Java- > 编辑器 -> 保存动作 ->选中“ 在保存时执行选定的动作 ->检查格式化源代码 ->选择格式化编辑的行 。
请注意,不必在“格式器”页面上单击“ 配置格式器设置” -所有代码样式都会自动包括删除结尾的空格。 至少我在Formatter配置中找不到此设置,并且它对于内置Java约定,Eclipse,Eclipse 2.1样式以及GoogleStyle都是开箱即用的 。
使用此设置时,显然您还需要关闭问题第1部分的解决方案。
Eclipse version checked: 4.5.2, 4.11
#7楼
目前尚无法在Eclipse中以通用方式完成此操作, 但是可以通过基本的Java知识和一些空闲时间来更改它 ,以添加对此https://bugs.eclipse.org/bugs/show_bug.cgi的基本支持? id = 180349
相关问题: https : //bugs.eclipse.org/bugs/show_bug.cgi?id = 311173
#8楼
对于php,还有一个选项:
#9楼
正如@Malvineous所说,使用“查找/替换”方法删除尾随空格(以下包括制表符U + 0009和空格U + 0020)不是一种专业方法,而是一种解决方法。
只需按Ctrl + F(或命令+ F)
- 查找
[\\t ][\\t ]*$
- 替换为空白字符串
- 使用正则表达式
- 全部替换
额外:
要删除前导空格,请找到^[\\t ][\\t ]*
而不是[\\t ][\\t ]*$
要删除空白行,请找到^\\s*$\\r?\\n
#10楼
如果您设置了代码格式化程序选项,则可以通过Ctrl + Shift + F来执行PyDev,也可以在保存期间执行 :
Eclipse- > 窗口 -> 首选项 -> PyDev- > 编辑器 -> 代码样式 -> 代码格式化程序 :
我至少使用以下这些:
- 保存前自动格式化
- 修剪线合适吗?
- 在文件末尾添加新行
#11楼
对于某些根本不支持删除尾随空格的编辑器(例如XML编辑器),您可以通过以下操作将其从所有行中删除:启用查找和替换,启用正则表达式,然后找到“ [\\ t] + $”,然后将其替换为“”(空白)。 可能有一个更好的正则表达式可以做到这一点,但是它对我有用,而无需安装AnyEdit。
#12楼
我将以下命令用于git: git config --global core.whitespace cr-at-eol
它删除尾随的^M
字符。
#13楼
使用sed,一种Unix命令行工具,有一种非常简单的方法。 您可能可以在Eclipse中创建一个宏来运行此宏:
sed -i 's/[[:space:]]*$//' <filename>
#14楼
您不需要任何插件。 例如,如果您编写JAVA代码,则可以擦除尾随空白以配置保存操作:
Eclipse 3.6
首选项 -> Java- > 编辑器 -> 保存操作 ->检查在保存时执行选定的操作 ->检查其他操作 ->单击Configure ..按钮。
在“ 代码组织”选项卡中,选中“ 删除尾随空白”