shiftwidth(縮進的空格數)
說明:指用>>或<<進行縮進的空格數,例如set shiftwidth=20,再按>>就向左移動20個空格的距離.
這20個空格的距離是用tabstop來轉換的,例如tabstop=5,那按>>的結果就是用4個tab來填充.
tabstop(制表符的寬度)
說明:就是一個制表符等於幾個空格.
expandtab(是否在縮進和遇到 Tab 鍵時使用空格替代;使用 noexpandtab 取消設置)
softtabstop(軟制表符寬度,設置為非零數值后使用 Tab 鍵和 Backspace 時光標移動的格數等於該數值,但實際插入的字符仍受 tabstop 和 expandtab 控制);
說明:
例如softtabstop=8,那么按下tab鍵,插入的就是正常的一個制表符;
如果設定 softtabstop=16,那么插入的就是兩個制表符;
如果softtabstop=12,那么插入的就是一個制表符加上4個空格;
如果 softtabstop=4呢?那么一開始,插入的就是4個空格,此時一旦你再按下一次tab,這次的四個空格就會和上次的四個空格組合起來變成一個制表符。
換句話說,softtabstop是“逢8空格進1制表符”,前提是你tabstop=8
autoindent(自動縮進,即每行的縮進值與上一行相等;使用 noautoindent 取消設置)
說明:拷貝粘貼 就在已經縮進的基礎上再縮進,所以就變得很亂.
可以 set noautoindent或者設置 set paste來解決
paste(粘貼模式,會取消所有上述選項的影響來保證后面的操作——通常是從剪貼板粘貼代碼
——保持原有代碼的風格;使用 nopaste 取消設置)
在.vimrc中添加以下代碼后,重啟vim即可實現按TAB產生4個空格:
set ts=4 (注:ts是tabstop的縮寫,設TAB寬4個空格)
set expandtab
對於已保存的文件,可以使用下面的方法進行空格和TAB的替換:
TAB替換為空格:
:set ts=4
:set expandtab
:%retab!
空格替換為TAB:
:set ts=4
:set noexpandtab
:%retab!
加!是用於處理非空白字符之后的TAB,即所有的TAB,若不加!,則只處理行首的TAB。