vimのスマートインデント(オートインデント)のカスタマイズ

いつもスマートインデント(オートインデント)が不便だな~とか思っていた。というのもタブ幅を4に設定しているのにもかかわずスマートインデントされるときは8になってしまう。結局スマートインデントしてもらってもxを押す(削除)必要があって激しくだるい。ということでいつもは切っている。そしてさっきもしかしてカスタマイズできるのかなとか思って調べてみたらあった。どうやら
set tabstop
という通常の設定とは別にスマートインデント等のタブ幅を指定する
set shiftwidth
というものがあるらしい。ということでこれを.vimrcに追加して万事解決。ひとつになってもいいような感じがするがなぜ二つあるんだろうか?入力するときとスマートインデントのとき別にしたいような機会に出くわしたことがないのでわからない...
ちなみに
set softtabstop
なるものもあるらしい。ただこれは指定しないと通常tabstopの値が適応されるようなので設定しなくてもいいかと。

まとめると
set tabstop
はファイルを読み込んだ時にの幅
set shiftwidth
はソフトウェア側でを挿入した時の幅
set softtabstop
はキーボードから入力したときのの幅
ということになるらしい。

これでだいぶコードが書きやすくなった。vimmerまでの道のりは長い...