Vim缩进有关的设置总结

  1. tabstop : 一个tab等于多少个空格,当 expandtab的情况下,会影响在插入模式下按下<tab>键输入的空格,以及真正的 \t 用多少个空格显示;当在 noexpandtab 的情况下,只会影响 \t 显示多少个空格(因为插入模式下按 <tab> 将会输入一个字符 \t )
  2. expandtab :设为真,在插入模式下按<tab>会插入空格,用>缩进也会用空格空出来;如果设置为假noexpandtab,那么插入模式下按<tab>就是输入\t,用>缩进的结果也是在行前插入\t
  3. softtabstop :按下 <tab> 将补出多少个空格。在 noexpandtab 的状态下,实际补出的是 \t 和空格的组合。所以这个选项非常奇葩,比如此时 tabstop=4 softtabstop=6 ,那么按下 <tab> 将会出现一个 \t 两个空格。
  4. shiftwidth :使用 >> << 或 == 来缩进代码的时候补出的空格数。这个值也会影响 autoindent 自动缩进的值。

Vim的官方文档给出了4种常用的设置:

作为一个 Pythoner ,\t 和空格混用的应该拉出去烧死。所以我推荐的配置是:

然后对于下列文件类型,4个空格太宽了,看起来比较累,可以换成2个空格。

相关参考: https://stackoverflow.com/questions/30408178/indenting-after-newline-following-new-indent-level-vim

 

最近硅谷第五季回归了,不知道大家记得不记得 Hendricks 和女朋友因为tab还是空格吵架的事情,我觉得 Hendricks 是对的啊,如果用 \t ,那么可能不同的IDE对 \t 可以更本地化地对齐一些,但是明显四个SPACE更稳啊,如果混用,到时候你咋看出来空的地方是 \t 哪个地方是SPACE呢。以前碰到很多下载下来代码打开,对齐乱七八糟的情况,简直十恶不赦。

Leave a comment

电子邮件地址不会被公开。 必填项已用*标注