tabstop表示一个tab显示多宽。
softtabstop是编辑的时候按tab键缩进的宽度。如果它和tabstop不相等,可能有空格。
比如tabstop为8,softtabstop为4,按第一个tab时,插入4个空格,再按一次,变成一个tab。
比如tabstop为4,softtabstop为6,按第一个tab时,变成一个tab+2个空格。再按一下,变成3个tab。
shiftwidth是调整格式时,比如使用<<和>>命令,缩进的宽度。
expandtab,是插入tab时,把tab变成空格。
参考
https://blog.csdn.net/ludonghai715/article/details/5657712
https://stackoverflow.com/questions/1562336/tab-vs-space-preferences-in-vim