在Rails社区中,缩进的标准是2个空格还是1个制表符?

38

我注意到大多数插件生成的HTML/XML/HAML使用2个空格而不是1个制表符。 我使用textmate,对于HAML / HTML / XML设置制表符为4个空格,对于Javascript / Ruby设置为2个空格,但我只需按一次Tab键即可获得漂亮的缩进。手动按两次空格和删除两次似乎太麻烦了:p。

你是手动输入两个空格吗?还是有一些中间层将制表符转换为两个空格?或者只有少数人使用制表符吗?


7
Textmate允许将Tab键替换为x个空格(2或4)。我认为其他文本编辑器也会允许这样做。 - Tony Fontenot
1
@Tony Fontenot是正确的。只需确保启用“软制表符”。 - maček
完成!软制表符和制表符设置在TextMate窗口底部,供其他人使用。 - Lance
6个回答

68

通常认为应该使用两个空格。


4
这背后有何原因,可供参考吗?谢谢您的回答,我会开始这样做 :) - Lance
6
好的,既然你特别提到了Rails,我想我可以指出Rails代码库本身使用2个空格。由于它是如此广泛使用和贡献的代码库,我认为我们可以接受2个空格作为约定。 - Ben
2
所以回答你最初的问题。它是标准因为它是惯例。而它是惯例,因为它是标准。http://en.wikipedia.org/wiki/Circular_reasoning - Gerry
3
我知道 @Gerry 只是开玩笑,但不——之所以是标准是因为它是惯例。最初设立这个惯例的人并没有遵循一个标准。 - Ben
2
他想知道选择背后的原因,而你的回答只是“因为它被选择了”。我只是在开玩笑。 - Gerry
我们不得不做出选择的事实很愚蠢。我们应该让人们有权决定是用两个空格还是四个空格。哦!嗯...它被称为制表符... - user2854544

37

关于不同编辑器显示标签宽度不同的争论...

这是一个配置设置问题!

将您的编辑器更改为每个制表符使用两个空格。不同编辑器中的不同宽度不是一个争论点,而是一个无意义的话题。如果有什么区别的话,使用制表符允许喜欢不同宽度的人设置和使用他们喜欢的宽度。我甚至觉得三个空格更好。

而且你必须按两次退格键才能减少一次缩进。我是程序员,我懒。我不喜欢重复做一件事!


使用制表符时,您被迫配置宽度以正确查看。而使用空格时,您被迫配置宽度以方便编辑(例如,Vim上的退格键会删除多个空格)。因此,对于空格,至少有一些机会您不必仅仅为了正确查看而进行配置。但是,空格会占用更多的空间。 - Ciro Santilli OurBigBook.com
1
您可以在编辑器中配置选项卡宽度,然后再也不必更改它。这仅适用于您不想使用默认值的情况。在我使用过的每个现代IDE /编辑器上,默认值都为4。 - Mike
4
人们总是说他们喜欢使用制表符,因为这样代码在任何地方看起来都一样,仿佛这是每个人都想要的。使用制表符的理念是让人们可以按照自己的喜好来查看代码。如果当别人更改了制表符大小后你的代码看起来很糟糕,那是你的问题,而不是编辑器的问题。代码应该无论我在编辑器或查看器中选择什么样的制表符大小都应该看起来不错(假设我选择一个合理的大小,比如2到8之间)。人们应该停止强迫别人使用他们喜好的缩进方式,而使用制表符就能实现这一点。 - Jens
2
我想把这句话刻在我的墓碑上。说得好,Jens。 - Mike

6

两个空格。即使是对于普通的 Ruby 开发者。


4
两个空格正在成为标准,因为它们是“刚好”的缩进,大多数人的眼睛可以清晰地看到HTML的缩进,但由于HTML往往嵌套得非常深 - 比编程时常见的嵌套深得多 - 超过两个空格很快就会将HTML推到80列屏幕的右侧。
不要使用制表符;使用两个空格。制表符存在问题,因为在不同的编辑器(以及终端)中它们的宽度可能不同。由于在部署之前整理HTML时会删除空格,因此使用制表符没有最终的带宽优势;它们只会在开发过程中引入一个通配符。
我使用Emacs,它使用两个空格自动缩进XML、HTML和SGML。如果我必须手动输入缩进字符,我会感到非常恼火;这就是我有编辑器的原因。 :)

1

在 Ruby on Rails 所基于的 Ruby 中,2 个空格是惯例。


1
在更实际的层面上,如果你使用多个操作系统和编辑器(例如,在工作中我使用Win XP上的RubyMine,在家里使用MacBook上的TextMate,我们的一位开发人员使用Notepad ++,另一位使用Aptana,甚至有一个人使用Netbeans,所有这些编辑器都以不同的方式解释制表符 - 不同的缩进,但2个空格始终是2个空格。此外,如果您曾经使用过HAML,或者如果您需要将代码复制粘贴到某些试图对您的代码进行着色编码的网站中,那么2个空格是必不可少的。

本文讨论的是屏幕缩进 - 我所说的是分享代码并保持最佳一致性,您不能期望其他人每次打开您的代码时都调整他们的制表符设置。 - konung
1
我相信你可能将缩进级别与对齐混淆了。这里有一个更深入的解释:http://www.movementarian.org/docs/whytabs/ - Gerry
不,我不这样做 - 在某种程度上,很多编辑器都依赖于代码缩进来在屏幕上进行视觉对齐(这也取决于所使用的字体 - 通常最好使用某种等宽字体 - 但这是个人偏好)。 - konung

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接