为什么缩进用 tab 比用 space 好?

圣战有很多种,诸如 Vim vs Emacs,Sublime vs Atom,OSX vs Windows,当然也有 Tab vs Space。

很久以前我听信了一个建议,“两个空格的缩进非常棒,你是前端更是如此了。”

“为什么?” 我想问,但我并没有问,因为从网上搜索而来的理论中,“两个空格党” 这股力量不容小觑,我于是随波逐流,并且一直感觉不错,“两个空格” 似乎是对的,JS 嵌套多,空格少看起来不那么 “糟”。

但直到最近,我遭到了两次背叛。

第一次是我下班回来从 24 寸屏切换到家里的 14 寸笔记本,“天啊!两个空格几乎短到看不见了!” 我急忙切换到四个空格这才稍微好点,然而我不可能家里一个配置,公司一个配置,我第一次有了抛弃空格的念头。

第二次是我在某处 copy 了一段代码(没办法,我是面向 GitHub 编程的),“糟糕!他的代码是四个空格缩进!” 于是我还得 “帮他” 把代码缩进调整为两个空格。


分手理由充分了,我毫不犹豫地说了再见。

但是 tab 更好?当然。

理由之一是 tab 是非常适合 “有个性的人” 的,根据你的个性你可以调整 tab 的宽度,同样是 “一个 tab” 但你可以让它看起来像 “两个空格” 或者 “四个空格”,而不是生硬地调整 space 的数目,那样对你项目的协作者会非常糟,除非你们用同一个 size 的屏幕,同一个编程习惯。

其实还有非常多的理由,Why tabs are clearly superior 会坚定你选择 tab 的决心。

总结一下就是:

  • Tab 占的体积更小。
  • Tab 的宽度可以因人而异,更个性化。
  • Tab 更利于多人协作。
  • Tab 不需要依靠某一个工具,所有编辑器都知道 “如何插入一个 tab”
  • Tab 更容易选中,还在为漏选一个 space 而烦恼?
  • Tab 现在在网页上不再难看,过去网页上一个 tab 显得非常宽,而现在 CSS3 的 tab-size 属性解决了这一痛点。

Use tab to indent, use space to align.
If you are using space, you are making align, not making indent.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 深入理解傅里叶变换Mar 12, 2017 这原本是我在知乎上对傅立叶变换、拉普拉斯变换、Z变换的联系?为什么要进...
    价值趋势技术派阅读 5,824评论 2 2
  • 原文 原文下载之后的格式略有点不友好,利用简述的markdown,编辑一下.版权归原作者 PEP Index > ...
    大飞哥阅读 2,553评论 0 0
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,100评论 0 1
  • 1.块级元素和行内元素 块级(block-level)元素;行内(内联、inline-level)元素。 块元素的...
    饥人谷_小侯阅读 2,049评论 1 4
  • 最佳原则 坚持制定好的代码规范。无论团队人数多少,代码应该同出一门。如果你想要为这个规范做贡献或觉得有不合理的地方...
    Tiny_ae3d阅读 1,658评论 0 1