缩进与对齐——正确地使用Tab和空格

转载 2015年07月09日 16:16:53

写代码时大家都会使用缩进(indentation)和对齐(alignment),这是两个相关而又不同的概念,两者都是为了提高代码的可读性。缩进出现在一行的最左边,目的是明显地区分开包含与被包含的代码;对齐则是为了使代码美观、整洁。

下例中,类的两个成员变量相对于类名来说具有一级缩进;两个变量的注释部分采用了对齐显示。它使用了Tab假设一个Tab等于8个空格的大小)来缩进和对齐,一块绿色表示一个Tab。


同样的代码,在另一个开发人员的机器上(一个Tab等于4个空格的大小)打开可能就不再对齐:


造成这一现象的原因是代码的对齐使用了Tab,而不同编辑器的Tab键大小设置不一样。因此下一个Tab stop的位置可能发生变化,导致代码不对齐。如果使用空格代替Tab,就不会有这个问题,因为空格的数量是不会变化的。


保持Tab(Keep Tabs)

需要详细说说VS中”保持Tab“这个选项。即使你选了这个选项,也不意味着每次按下Tab键都会插入一个Tab字符 ASCII0x09)。实际上,按下Tab后只是向右边移动Indent size个空格(上例中为4)。只有当移动以后的位置刚好处在一个物理Tab边界(即Tab size的整数倍)时,编辑器才会插入Tab而不是几个空格。仔细想想,这是可以理解的。

总结

代码的对齐必须使用空格而非Tab,因为后者在不同编辑器中的大小可能是不一样的,容易导致代码在其他机器上不再对齐。

参考

1. 这篇文章讨论了为什么要用空格来对齐:Tab-size independent source code formatting

2. Noah Richards回答了提问者关于按下Tab键后右移格数的问题:cannot get the tab size to be different than the indent size

相关文章推荐

缩进与对齐——正确地使用Tab和空格

original url from : http://blog.csdn.net/tonywearme/article/details/7061530 缩进与对齐——正确地使用Tab和空格 ...

[乐意黎原创]sublime text3里 修改TAB键为缩进为四个空格

编写代码时,需要把TAB 键转换成四个空格。 哪么在 Sublime Text3,怎么操作呢,研究了下, 具体步骤如下:  1. 菜单栏里点击 Preferences-> Setting-User,...
  • aerchi
  • aerchi
  • 2015年12月24日 16:43
  • 50389

[转]emacs TAB&空格缩进配置、命令

最近在使用emacs(不是xemacs,不是gtk-emacs)编写C程序,碰到的前辈同样遇到的问题:缩进用TAB还是空格的问题。 默认情况下emacs是使用TAB的,下面的配置语句可设定所有遇到T...
  • orz365
  • orz365
  • 2013年07月03日 17:33
  • 429

vim中缩进的设置以及将tab转换成空格

对于编写代码,缩进是最基本的概念之一。至于缩进是使用空格还是制表符(Tab),或者缩进是否正好使用一个制表符来表示,很多程序员,特别是 Windows 开发出身的程序员,很容易混淆。幸好,Vim ...

vim中缩进的设置以及将tab转换成空格 .

转自:http://blog.csdn.net/rainday0310/article/details/6205497 对于编写代码,缩进是最基本的概念之一。至于缩进是使用空格还是制表符(Tab...

python缩进风格 tab和空格

一般使用四空格对齐 一般使用空格而不是tabjian
  • pianzif
  • pianzif
  • 2014年10月31日 12:42
  • 7966

Vim中Tab与空格缩进

vim缩进参数解析缩进用 tab 制表符还是空格,个人爱好问题。但是在大多项目中,习惯使用空格。关于缩进,vim中可以通过如下四个参数进行配置set tabstop=4 set softtabstop...
  • hsd2012
  • hsd2012
  • 2017年02月11日 12:22
  • 1054

[乐意黎转载]Sublime Text永久设置使用4个空格缩进

Sublime Text是一款轻量高效的代码编辑器,官网地址是:http://www.sublimetext.com/,默认情况下sublime是使用tab进行缩进,如果手动敲空格是比较麻烦的,并且很...
  • aerchi
  • aerchi
  • 2017年01月22日 11:01
  • 558

关于源代码中缩进是否使用tab问题的心得

关于源代码中缩进是否使用tab问题的心得 从我一开始接触C语言,到现在在做嵌入式,见过的关于编程语言(本人涉略的一些编程语言,如C,C++,PHP,Java等)的入门介绍或比较系统的书籍,都要求...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:缩进与对齐——正确地使用Tab和空格
举报原因:
原因补充:

(最多只允许输入30个字)