空格 vs 制表符 -- 最佳实践?

6

我曾经是一个标签狂人——我总是使用制表符来缩进我的源代码,如果我看到任何空格,我会立即进行正则表达式搜索/替换,将所有前导空格替换为制表符。

直到我意识到在一些文件中存在大量的空格,以至于它们在不同的编辑器中打开时不一致(例如Notepad++ vs. Emacs vs. Visual Studio)。

一般情况下,哪种方法更好?有没有一种通常被认为是更好的做法?


8
我理解您的意思是,当我说“问题”时,实际上是指“圣战”。 - Nate C-K
2
对于那些这样说的人:我只是好奇,为什么这不是一个真正的问题?它不是模糊的,它涉及到一个具体的问题,而且很容易理解我的意思,所以为什么会有投票呢?请不要在告诉我问题出在哪里之前就关闭这个问题;谢谢! :) - user541686
1
@Lambert - 最可能被判定为不是真正的问题,因为:- 没有明确的答案;- 这个问题已经讨论了很多次;- 没有人希望在SO上再重新提交;- 除非使用极其老式的编辑器,否则没有人使用空格;- 大多数人知道空格最初是因为输出设备(打印机或终端)会将Tab字符与空格字符区分对待。故事结束...希望如此? - slugster
1
@slugster:不是这样的,有很多人使用空格。例如Guido van Rossum支持它。 - Johan Kotlinski
1
@slugster:MS Visual Studio 2010默认使用空格缩进,至少在C#模式下是这样。我认为你不能把它视为“非常老式的编辑器”。 - Nate C-K
显示剩余17条评论
1个回答

9

有了好的文本编辑器,实际上并不重要。这只是技术背景细节。UI行为将完全相同。

唯一重要的是,在项目中每个人都决定使用什么,并且每个人都坚持这一点。因为,正如您发现的那样,如果文件内部同时使用制表符和空格进行缩进,将会出现问题。

更新:当我说每个项目中的每个人都决定使用什么时,我当然是指每个人都应该达成一致的决定。:D(这可能是棘手的部分。)


4
我喜欢你的更新,加一分 :) - user541686
1
如果您使用空格而不是制表符,可能会导致源文件大小略微增加。如果您有一些方法可以省略空格(例如:编译器、缩小器等),那么这个问题总是可以得到缓解的。 - Timothy Perez
1
PSR-2和PSR-12规定:每个缩进级别必须使用4个空格进行缩进,不能使用制表符进行缩进。详见https://github.com/php-fig/fig-standards/blob/master/proposed/extended-coding-style-guide.md。 - NVRM
问题在于,使用制表符时,每个团队成员都会感到满意,因为他们可以根据自己的意愿配置IDE。而使用空格,则不可避免地会有关于使用多少空格的不同偏好,无论您选择什么样的标准,都会有一些人被迫感到不舒服。对我来说,这是一种可怕的工程实践。 - Petruza

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