缩进用 tab 制表符还是空格,这不是个问题,就像 python 用四个空格来缩进一样,这是要看个人喜好的。在 Vim 中可以很方便的根据不同的文件类型来设置使用 tab 制表符或者空格,还可以设置长度,非常灵活。
首先来看如何设定 tab 的宽度以及如何确定用 tab 制表符还是空格来表示一个缩进:
set tabstop=4
set softtabstop=4
set shiftwidth=4
set noexpandtab / expandtab
set softtabstop=4
set shiftwidth=4
set noexpandtab / expandtab
说明:
其中 tabstop 表示一个 tab 显示出来是多少个空格的长度,默认 8。
softtabstop 表示在编辑模式的时候按退格键的时候退回缩进的长度,当使用 expandtab 时特别有用。
shiftwidth 表示每一级缩进的长度,一般设置成跟 softtabstop 一样。
当设置成 expandtab 时,缩进用空格来表示,noexpandtab 则是用制表符表示一个缩进。
根据文件类型来设置 tab:
有些时候想为某些类型的文件设置不同的 tab 表现,如 python 用四个空格来表示一个缩进,在我们的 javascript 约定中也是用四个空格来表示缩进,而 HTML 和 CSS 则喜欢用 tab 制表符来缩进,那么可以做如下设置:
if has("autocmd")
autocmd FileType javascript setlocal ts=4 sts=4 sw=4 expandtab
autocmd FileType python setlocal ts=4 sts=4 sw=4 expandtab
endif
autocmd FileType javascript setlocal ts=4 sts=4 sw=4 expandtab
autocmd FileType python setlocal ts=4 sts=4 sw=4 expandtab
endif
这样当开打的文件是 .js .py 的,都会用四个空格来缩进。
用特殊符号来表示 tab 制表符:
在 Vim 中可以用特殊的符号来表示一个 tab 制表符,这样 tab 制表符和空格就可以很容易的区分看来了,如下图:

在 vimrc 中加入就可以了:
set list
set listchars=tab:▸\ ,eol:¬
set listchars=tab:▸\ ,eol:¬
查看更多:
Tabs and Spaces
Show invisibles
以后多介绍点 Vim 吧。
PS,华丽的 Mac 啊
是啊,作为穷人我表示压力好大。
你也会有的啊
为啥那个三角形我终端里显示不出来。。。
请问你用的是什么系统,也可以在 Vim 的插入模式中这样输入,按下Ctrl+v,按下U25B8。
谢谢分享,我找到了一些vim视频教程,也分享出来啦..
字体好好看
Pingback: vim中的tab和space | FreeTstar