32

当我向/从我们的存储库提交/更新代码时,我想自动在制表符和空格之间转换以进行缩进。我找到了 Eclipse 的 AnyEdit 插件,它可以转换文件目录。一开始还不错,但是有人对如何处理这个问题有更多的经验吗?或者也许知道 Ant 脚本或其他东西?

4

7 回答 7

17
  1. 确保您的编辑器设置为使用空格而不是制表符
  2. Select all text and hit CMD + I on mac or CTRL + I on windows.
于 2014-01-29T16:17:13.683 回答
15

为什么不只使用代码格式化程序和/或清理功能?它具有为您处理这些内容的设置。您甚至可以让它在保存时自动运行。

编辑:正如 Peter Perháč 在评论中指出的那样,这只回答了一半的问题。我没有任何实践经验,但您可以尝试使用Maven Eclipse 格式插件从 Maven 构建中进行格式化。

不幸的是,这只是 Maven,而且我知道没有轻量级的命令行格式化程序。但是如果您碰巧使用 Maven,您可以将格式目标绑定到正确的阶段,并且如果您将 Eclipse 设置为自动构建,它将在更新时格式化。

根据 SCM 工具(git、svn 等),您还可以创建一个运行构建的钩子(但它可能有点太重了)。

于 2008-09-19T08:10:13.670 回答
12

我使用 AnyEdit 插件在保存文件时自动将制表符转换为空格。我还配置了基本文本编辑器(几乎所有其他编辑器都从中派生)插入空格而不是制表符。这听起来是多余的,但它的作用是确保我不插入任何选项卡,并且我编辑的任何已经有选项卡的文件将在我保存后立即转换。

标签在源代码中没有位置。如果其他人在将制表位设置为不同值的情况下查看文件,则无论如何他们都会丢失大多数对齐/格式。

(当然,如果您有直接编辑的 Makefile,您需要确保保留它们的选项卡。但在我的项目中,如果完全使用 make,则 Makefile 派生自不同的源,例如 Makefile。 Perl 中的 PL。)

于 2008-09-19T08:29:21.240 回答
3

有点矫枉过正,只能尝试使用可以处理它的某些存储库产品,但是调用 indent 或astyle的钩子脚本可以解决问题。它会为每个文件以相同的方式格式化每个人的代码,这取决于你如何编写钩子脚本,当然它必须是预先提交的。

于 2008-09-19T08:12:06.023 回答
1

当且仅当制表符不在行首时,您可能会通过使用制表符而不是空格来丢失对齐/格式。切勿在行内使用制表符,始终在行前使用制表符。这允许您使用编辑器调整到所需的缩进级别,而不会影响您的同事查看文件。挑战:找到一个示例,其中行前的制表符失去对齐。

于 2010-02-12T01:38:47.483 回答
0

我使用 Kedit 来做这件事。它还可以本地转换来自 Macintosh、UNIX 和 MS-Dos 的文本文件。由于它是一个较旧的编辑器,我使用其中一个脚本来处理 unicode 文件。您可能还想看看其他一些智能编辑器。

于 2010-02-12T01:48:58.203 回答
0

I use Eclipse for Java EE developer 4.6.0 Neon. I use http://marketplace.eclipse.org/content/anyedit-tools

于 2016-10-07T07:50:33.133 回答