Tab和缩进不是一回事。
Tab是一个字符(制表符),其显示宽度可定义。可更改Tab键的映射关系,将其设置成n个空格,n由Tab自身宽度决定。缩进指的是一个概念,在Vim中可由>和<键控制增加和减少缩进量,缩进的填充单元可以是制表符也可以是空格,由expandtab的状态确定(noexpandtab/expandtab)。一次“>”操作产生的缩进量可自定义,与制表符宽度不一定要一致。
以下是Vim相应的设置命令:
set expandtab 更改tab映射为空格
set tabstop=2 设置tab宽度
set softtabstop=2 设置Backspace回退量
set shiftwidth=2 设置'>'和'<'缩进量
制表符有时会引起麻烦,如在python缩进时混用制表符和空格导致程序报错。今后弃用制表符,将Vim和Gedit中Tab键都映射为两个空格。为防止制表符捣乱可以在Vim如下设置,醒目的显示制表符:
set list
set listchars=tab:▸\