1 shiftwidth
這個是用於程式中自動縮排所使用的空白長度指示的。一般來說為了保持程式的美觀,和下面的參數最好一致。同時它也是符號移位長度的制定者。
2 tabstop
定義tab所等同的空格長度,一般來說最好設定成8,因為如果是其它值的話,可能引起檔案在列印之類的場合中看起來很彆扭。除非你設定了 expandtab
模式,也就是把tabs轉換成空格,這樣的話就不會一起混淆,不過畢竟定位字元為8是最常用最普遍的設定,所以一般還是不要改。
3 softtabstop
如果我們希望改變程式中的縮排怎麼辦?shiftwidth
和tabstop
不一樣的話,你會發現程式比較難看的。這時候,softtabstop
就起作用了。可以從vim的說明中看到,一旦設定了softtabstop
的值時,你按下tab鍵,插入的是空格和tab定位字元的混合,具體如何混合取決於你設定的softtabstop
,舉個例子,如果設定softtabstop=8, 那麼按下tab鍵,插入的就是正常的一個定位字元;如果設定 softtabstop=16,那麼插入的就是兩個定位字元;如果softtabstop=12,那麼插入的就是一個定位字元加上4個空格;如果 softtabstop
=4呢?那麼一開始,插入的就是4個空格,此時一旦你再按下一次tab,這次的四個空格就會和上次的四個空格組合起來變成一個定位字元。換句話說,softtabstop
是“逢8空格進1定位字元”,前提是你tabstop=8
。
4 關於expandtab
舉個例子,在多人一起開發項目時,為了使代碼風格盡量保持一致,一般不允許在代碼使用TAB符,而以4個空格代之。我們可以編輯一個檔案,包含下面的內容:
set shiftwidth=4
set expandtab
然後把下面的命令加入到.vimrc中:
autocmd FileType c,cpp set shiftwidth=4 | set expandtab
就可以只在編輯c和cpp檔案時實行這種設定了
(原文地址:
http://blog.csdn.net/ludonghai715/archive/2010/06/09/5657712.aspx)