繁体   English   中英

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

[英]How to auto-remove trailing whitespace in Eclipse?

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

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

我假设您的问题与 Java 代码有关。 如果是这种情况,您实际上不需要任何额外的插件来完成 1)。 您只需转到Preferences -> Java -> Editor -> Save Actions并将其配置为删除尾随空格

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

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

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

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

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

Preferences -> Java -> Editors -> Save Actions -> check Perform the selected actions on save -> check Additional actions ->点击Configure.. -> 去代码组织选项卡 -> 勾选Remove trailing whitespace -> 选择All lines

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

首选项-> Java ->编辑器->保存操作-> 选中“在保存时执行选定的操作-> 选中Format source code -> 选择Format以确定行

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

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

Eclipse version checked: 4.5.2, 4.11

你不需要任何插件来做到这一点。 例如,如果您编写 JAVA 代码,您可以擦除配置保存操作的尾随空格:

日食 3.6

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

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

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

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

我至少使用这些:

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

执行以下操作:

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

在此处输入图片说明

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

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

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

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

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

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

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

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

对于 php,还有一个选项:在此处输入图片说明

正如@Malvineous 所说,使用 Find/Replace 方法删除尾随空格(下面包括选项卡 U+0009 和空格 U+0020)不是专业的,而是一种解决方法。
只需按 Ctrl + F(或 command + F)

  1. 找到[\\t ][\\t ]*$
  2. 替换为空字符串
  3. 使用正则表达式
  4. 全部替换

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

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

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

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

我假设你想坚持一些指导方针,但不要触及代码的其余部分。 但该指南应整体使用,而不是零碎使用。 所以我的建议是 - 将所有代码更改为指南:它是一次性操作,但请确保您的所有开发人员都拥有相同的插件(AnyEdit),并为项目设置相同的设置。

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

它删除尾随的^M字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM