编码风格:缩进的时候使用空格好,还是使用TAB好?

陪她去流浪 桃子 2015年10月13日 编辑 阅读次数:2632

以前觉得使用TAB缩进很是方便(我喜欢4个字符缩进),按一下就缩进4个空格。删除的时候也是同样,按一下BS,就后退4个字符,依然保持对齐,然后接着写。这一切似乎都没有什么问题,但是……

但是,正规情况下,一个TAB字符默认应该是8个(单字节)字符宽。然而,几乎没有人使用这么宽的缩进。常见的缩进是:最常见的4个,少见的2个,惨绝人寰的1个(大神的世界比较孤僻,我不懂)。Windows的笔记本只支持8个标准的缩进,所以使用TAB缩进的代码几乎无一例外地乱了套。 虽然我们都可能很少使用笔记本看代码,但是有一个地方你不得不去,那就是网页。网页同样是使用8个字符作为一个TAB的宽度。对于经常在网页上Review代码的人们来说这太讨厌了!但是你又不得不去这些地方,GitHub就是典型。

以下代码分别是在本地环境使用TAB缩进(4个字符宽)和使用空格缩进(4个空格)在网页上显示(一个TAB占8个字符宽)的差异:

我去,简直惨不忍睹,根本没法看的节奏……

一开始我为什么选择使用TAB缩进,我想,可能有以下原因:用TAB可以一键缩进、一键回退,方便。担心如果是空格的话,删除的时候需要按4下回退才能减少一次缩进,这可能有点麻烦,且容易按坏键盘!反正就是:可能会按更多的键!使用空格会增加文件大小!

但,正如前面所说的,使用TAB缩进有各种各样的显示问题。于是我于一个月前,我尝试切换到使用空格缩进,一个TAB占4个空格宽度,编辑器是 VIM,天天在公司写 lua 来练手,学习 VIM 和 lua。在 VIM 设置 ts=4,expandtab 可以达到设置一个TAB替换为4个空格的功能。 在使用一个月之久后,我终于发现,之前我的担心是多余的:使用空格作为缩进同样可以来按TAB键达到缩进的功能。回退的话就更加简单了,``cc``就行了(需要开启智能缩进)。要删除一行的话,直接 ``dd`` 就行了。最终发现,按的键并没有之前认为的那么多,而是更少了。现在的代码走到哪里都是规规矩矩的,漂亮多了。这是真的。

也一直在 VS2013 中使用 VsVim 扩展,很好用。但之前也是一直使用的TAB。不过现在好了,全部统一,统一使用空格缩进。

原来的代码全部是使用TAB缩进,现在却完全使用空格缩进。。。会慢慢改过来的。

2015-12-29补充一篇调查:http://blog.jobbole.com/96174/

2016-09-01补充一篇调查:https://news.cnblogs.com/n/552649/

标签:编码风格