缩进与对齐——正确地使用Tab和空格
来源:互联网 发布:php接口开发 编辑:程序博客网 时间:2024/05/21 12:31
写代码时大家都会使用缩进(indentation)和对齐(alignment),这是两个相关而又不同的概念,两者都是为了提高代码的可读性。缩进出现在一行的最左边,目的是明显地区分开包含与被包含的代码;对齐则是为了使代码美观、整洁。
下例中,类的两个成员变量相对于类名来说具有一级缩进;两个变量的注释部分采用了对齐显示。它使用了Tab(
假设一个Tab等于8个空格的大小
)来缩进和对齐,一块绿色表示一个Tab。
同样的代码,在另一个开发人员的机器上(一个Tab等于4个空格的大小)打开可能就不再对齐:
造成这一现象的原因是代码的对齐使用了Tab,而不同编辑器的Tab键大小设置不一样。因此下一个Tab stop的位置可能发生变化,导致代码不对齐。如果使用空格代替Tab,就不会有这个问题,因为空格的数量是不会变化的。
下面以Visual Studio 2008为例,来说明如何正确地设置Tab到空格的转换。
在Visual Studio 2008中可以按快捷键 [CTRL] +[R] +[W] 来显示原先不可见的字符如Tab和空格,这样可以时刻提醒自己在需要对齐的地方不要用Tab。下图中,向右的箭头表示Tab,小点表示空格。(Tab size=8, Indent size=4,下面有具体解释)
在Visual Studio中可以设定Tab和缩进的大小(单位是空格):工具->选项->文本编辑器->C/C++->Tabs。记得要把“插入空格”选上,这样所有新产生的Tab都会自动转换成对应的空格数(下图中为8)来代替Tab。需要特别说明的一点是,原先已经存在的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和空格
- 缩进与对齐——正确地使用Tab和空格
- 缩进与对齐——正确地使用Tab和空格
- 缩进与对齐——正确地使用Tab和空格
- 缩进与对齐——正确地使用Tab和空格(转)
- Vim中Tab与空格缩进
- python缩进风格 tab和空格
- vscode —— 编码缩进空格转为tab
- vim更改缩进空格数和TAB键缩进数
- vim更改缩进空格数和TAB键缩进数
- vim更改缩进空格数和TAB键缩进数
- VIM编译器:设置行号和[Tab]的缩进空格数目
- eclipse tab缩进改为空格
- 空格与缩进
- sublime text修改TAB缩进为空格
- sublime 修改tab缩进为空格
- 2、缩进、空格、换行、空行、对齐
- 如何在vim里面把空格缩进改为tab缩进
- Redis SNAPSHOT的实现
- 实战android手机telnet、ftp登陆,权限修改
- 双向供给的教育,全面的战略眼光
- Date Difference
- Best Digital Signal Processing Books
- 缩进与对齐——正确地使用Tab和空格
- 浅谈Iterator的用处
- 设计原则--重新读来
- hdu 1241
- SQL函数说明大全
- 删除文件中的空行和注释行 linux shell
- 25、从头学Android之多媒体--使用SoundPool播放音频
- 设计模式1-Adapter模式
- 十月总结