制表符缩进真的不好吗?

2011-06-12 01:38:53 +08:00
 tioover
我一开始也是一直用制表符缩进的,但是据说大家都用空格,制表符在不同编辑器下的表现不统一,于是现在一直在用空格缩进。但是现在有点怀疑制表符缩进真的不好么

用制表符缩紧虽然表现不统一但是很多编辑器IDE都可以设置的
在程序中空格有很多作用,但是制表符只用于缩进,可以很好的区分开来
空格有的时候会缩进错,比如说没对齐,但是制表符就不会
在没有插件或者IDE辅助的情况下,制表符更方便
可以随时改变制表符的宽度
这一条有点牵强:如果从别人那里复制粘贴代码,然后缩进格数不同那就麻烦了
7992 次点击
所在节点    程序员
29 条回复
9hills
2011-06-12 01:52:34 +08:00
关键是统一性,只要在某个项目中统一选一种就行了。编码风格本来就只是项目级别的,再高高不了了。。
Hyperion
2011-06-12 01:53:47 +08:00
只用制表符, 别的不用... 方便, 可靠, 两个字: 好使!
不当传教士也不当喷子, 大伙爱用啥用啥...

这其实没啥好讨论的, 青菜萝卜的事...
fly2never
2011-06-12 01:55:12 +08:00
只要小组内统一了,那就是tab方便
Hyperion
2011-06-12 01:55:54 +08:00
@9hills 一般都靠ide约束吧... 我见过的好多数编码规范里, 都没写缩进要用什么符号...
Hyperion
2011-06-12 02:03:17 +08:00
[注意! 内容修正...]
简单回顾了一下, 我的说法是错的... 我google到的几份编码规范, 都在开篇就写明了关于缩进的问题...

typecho [php] (http://docs.typecho.org/phpcoding)
phpwind [php] (http://www.phpwind.net/simple/?t897983.html)
qichangxing
2011-06-12 06:48:33 +08:00
这问题其实说过无数次,空格有利于在各个场景保持一致。
darasion
2011-06-12 07:56:32 +08:00
我得原则:用周围人都用的,随时准备改变,不形成独特的习惯。
cmonday
2011-06-12 09:10:56 +08:00
我一定会用tab,如果有要求用空格的,我会在写完之后用EditPlus把tab全部转换为4个空格,另存一份。
我觉得应该出一个类似W3C的标准,强制各种编辑器统一表现,否则不予支持才好!为了这些五花八门的编辑器,我们要放弃最适合缩进的制表符,变成敲4下空格这种容易出错又麻烦的操作,各位不觉得用户体验很差吗!
lepture
2011-06-12 09:42:15 +08:00
@cmonday
set expandtab
set ts=4
set sw=4

这样就不用敲4下空格了
ywjno
2011-06-12 11:03:14 +08:00
eclipse里面设置模板,把按一下tab键变成4个空格输出
haohaolee
2011-06-12 11:06:56 +08:00
tab派和空格派都有自己的道理啊。
虽然全部空格能保持一致,但是如果不同的人喜欢不同程度的缩进,那么空格就无法满足这种多样性
istef
2011-06-12 11:11:38 +08:00
其实就是习惯了,每个语言都有自己的习惯,或者说是这些语言社区领袖的习惯。我在 python 之前 html javascript php 全是 tab 缩进,python 后很自觉的就变成俩空格了。。。。
btw,现在流行的编辑器通常都可以重新定义缩进的行为,比如把 tab 定义成俩空格 :)
walleve
2011-06-12 11:58:36 +08:00
看到家的争论,我解释下...

在国外的开源程序中,我经常看到的结果是制表符都是跳格而不是空格,跳格==4个空格基本是很多跨平台协作团队会采用的做法,也支持大家这样做。

但是,一个小小小的问题也要大家注意下,空格和跳格有很大不同,跳格不会占用页面内容,空格则是会被解析的,也就是会消耗系统资源。当然了...每行四个空格,就整体来说,效率影响也基本可以忽略掉的。
mcfog
2011-06-12 13:31:34 +08:00
用制表符的理由很简单:用空格的时候按左(或退格)要按多下才能缩回一格

用空格的好处我真没看到过,保持完全一致我觉得说成缺点也不为过,内容(html)和样式(css)要分离说了那么多年了为什么还有那么多程序员没发现用空格缩进其实就是相当于在写<indent style="width:4em" />,用tab相当于<indent />和分离的编辑器设置(每个人喜欢什么宽度自己设什么宽度就好)
raptium
2011-06-12 13:53:23 +08:00
如果用对了编辑器 应该感觉不出区别才对
reus
2011-06-12 17:51:12 +08:00
设置对了,其实用空格和用制表符是没有区别的
按一下tab,出来N个空格,按一下退格键,也删掉同样多的空格
所以,输入或者删除麻烦并不能作为不用空格的理由啊……
设置一下就ok 的
tioover
2011-06-12 18:04:59 +08:00
@reus 我就是这样的,但是有的时候空格会误删除啊
reus
2011-06-12 18:31:17 +08:00
@tioover 我用vim没有出现过类似情况
yelusiku
2011-06-13 22:47:06 +08:00
在vim里设置了expandtab。写ObjC用8空格缩进的人伤不起啊……
obiwong
2011-06-14 00:28:45 +08:00
如果项目参与的人多了,用TAB就是浪费每个人的时间在配置编辑器上

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/14326

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX