TABの設定の仕方

:set ts=4 sw=4 sts=0

失敗例
ts=4とだけ設定して、残りのswとstsを設定しなかった場合、インデントのたびに2個分のTabが挿入されてしまいます。

なるほど。

'tabstop'、'shiftwidth'、'softtabstop'の違い

インデントには'tabstop'、'shiftwidth'、'softtabstop'の3つのオプションがあります。

'tabstop' (短縮名'ts')
ファイル中の文字(キャラクターコード9)を、画面上の見た目で何文字分に展開するかを指定する。既にあるファイルをどのように表示するのか指定したい時に便利。
'shiftwidth' (短縮名 'sw')
cindentやautoindent時に挿入されるタブの幅。vimが挿入するインデント('cindent')やシフトオペレータ(>>や<<)で挿入/削除されるインデントの幅を、画面上の見た目で何文字分であるか指定する。自動的に挿入される量、と覚えておくと便利。
'softtabstop'(短縮名 'sts')
キーボードでキーを押した時に挿入される空白の量。'softtabstop'が0以外の時には、例え'ts'を4に設定していても、を1度押しても'softtabstop'分だけ空白が挿入されます。逆に'softtabstop'が0の場合には挿入されるのは'ts'で指定した量になります。 の量にも影響を与えます
vim各種設定
http://pcmania.jp/~moraz/howto/setting.html