缩进使用空格而不是跳格这个风是什么时候刮起的?

215 天前
 zhwguest

不知不觉用了 10 年了,记得在早些年都是喜欢用 tab 而不是 space 的。

6932 次点击
所在节点    程序员
66 条回复
sparkssssssss
214 天前
空格比 tab 的容错率高吧
Huelse
214 天前
@zhwguest #34 这里说的一致性是指显示上的
tab 宽度为 2

tab 宽度为 8 (以前一些 terminal 里的默认值)
misdake
214 天前
很好奇缩进的显示一致性有啥用。每个人能根据自己的喜好决定显示效果是件好事嘛,就和设置显示字体一样。
james122333
214 天前
我爱 tab 终端机显示切换也更方便
vim 下也很好分 set list 就可以列出特殊字元 set nolist 取消
youyouzi
214 天前
james122333
214 天前
vim 下缩排也很方便
yshtcn
214 天前
在看到这个讨论之前,我还以为是因为 python 的流行。

因为早期我还在学 c#的时候,那时候缩进不是必须的,你愿意的话可以把几行写在一行。

但是 python 就要求必须缩进,然后编辑器也会自动把 tab 转四个空格
Greendays
214 天前
我用的 IDE 好像都是自动把 tab 转成空格的
Sinksky
214 天前
问就是 space 方便自动排版跟对齐缩进,看起来更美观。tab 也就字符少点有点优势,感觉显示宽度自由这些说法有点鸡肋,没啥实际用处。
spadger
214 天前
我只用 tab 缩进。想显示几个空格编辑器设置改一下就行了。
lslqtz
214 天前
基本上只在开头用 tab, 因为方便修改缩进和对齐, 相比 space 在修改时更准确, 而且也能兼顾到不同人的缩进习惯 (比如有些人喜欢 2 字符, 有些人喜欢 4 字符).

缺点是有些语言缩进长度会影响观感.
cj323
214 天前
@misdake 理论上当然是用 tab 对阅读者更自由,每个人都可以定义自己喜欢的宽度。

但现实是没人愿意花精力到处改参数。哪怕有那个精力,一开始也是默认值。而默认值如果不是当前使用者喜欢的宽度,也会被“膈应”一下。

更不用说很多 GUI 没法设置 tab 宽度,浏览器就是一个。每次看网页文档时,我都想把 Chrome“革命”一下,让他也能设置 tab size ,让所有网上的代码都是我最喜欢的 tab 宽度。当然,这是我想多了。

所以我特别理解用空格的人,用了空格,最起码自己发上去的代码,到哪里都是自己喜欢的缩紧宽度,不管在浏览器里还是别的地方。
v2AKS
214 天前
tab 缩进,然后在设置里设置 tab 有几个空格就完事儿了
pkoukk
214 天前
15 年的时候还有人在讨论用哪个好,今天主流 IDE 都已经用空格代替 Tab 了
mark2025
214 天前
前端 HTML 用 4 空格(或者 tab 映射 4 )可能都嫌屏幕宽度不够,尤其上了 TypeScript 恐怕就得 2 空格了
mark2025
214 天前
@cj323 我以前是 tab4 ,后来是 space4 ,再后来就是 space2 了。以前写 js 还是分号党,现在分号也不要了~
encounter2017
214 天前
> 早些年都是喜欢用 tab 而不是 space 的
这个表述缺乏论据支持呀

http://ukupat.github.io/tabs-or-spaces/
一个比较老的统计,各个语言 tabs 和 spaces 的使用情况

对于某个语言来说,90% 以上使用的选项( 4 spaces, 2 spaces, tabs, 网站还统计了 3spaces 和 8 spaces 这里不与列出) 如下:

4 spaces:
- Python (1991 ,PEP8 官方规范, 混用的怕不是没挨过 inconsistent use of tabs and spaces in indentation 的毒打)
- Rust ( 2010, 社区约定 4 空格,工具链( rustfmt )默认支持。)

2 spaces:
- Crystal (2014, 继承 Ruby 风格)
- Pascal ( 1970 )
- Clojure (2007)
- Common Lisp (1984)
- Elicxir (2012)
- Ocaml (1996)
- Ruby (1995)
- Scala (2004)

tabs:
- Go ( 2009, 语言强制)
dallaslu
214 天前
所以 go 自带格式化,省得吵这些没有用的
cj323
214 天前
@mark2025 哈哈我有时候 JS 也不用分号,但是有时候需要切回 PHP 或者 C 就会把分号带回来。切 Go 后又会把分号带没 lol
mark2025
214 天前
@cj323 我使用 VSCode 之后发现分号比较显眼妨碍写代码效率,于是就去掉了。反正有 eslint 自动格式化不怕吸附下一行代码。

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

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

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

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

© 2021 V2EX