1. 程式人生 > >VIM學習筆記 縮排 (Indent)

VIM學習筆記 縮排 (Indent)

手動縮排

在Normal Mode下,命令>>將對當前行增加縮排,而命令<<則將對當前行減少縮排。我們可以在命令前使用數字,來指定命令作用的範圍。例如以下命令,將減少5行的縮排:

5<<

在Insert/Replace Mode下,Ctrl-Shift-t可以增加當前行的縮排,而Ctrl-Shift-d則可以減少當前行的縮排。使用0-Ctrl-Shift-d命令,將移除所有縮排。需要注意的是,當我們輸入命令中的“0”時,Vim會認為我們要在文字中插入一個0,並在螢幕上顯示輸入的“0”;然後當我們執行命令0-Ctrl-Shift-d時,Vim就會意識到我們要做的是減少縮排,這時0會就會從螢幕上消失。

縮排寬度預設為8個空格。我們可以使用以下命令,來修改縮排寬度:

:set shiftwidth=4

通過以下設定,每次點選Tab鍵,將增加寬度為8列的Tab縮排。

:set tabstop=8

:set softtabstop=8

:set shiftwidth=8

:set noexpandtab

使用以下設定,每次點選Tab鍵,增加的縮排將被轉化為4個空格。

:set tabstop=4

:set softtabstop=4

:set shiftwidth=4

:set expandtab

其中,expandtab選項,用來控制是否將Tab轉換為空格。但是這個選項並不會改變已經存在的文字,如果需要應用此設定將所有Tab轉換為空格,需要執行以下命令:

:retab!

自動縮排

在Vim中還可以進行自動縮排,主要有cindent、smartindent和autoindent三種。

cindent Vim可以很好的識別出C和Java等結構化程式設計語言,並且能用C語言的縮排格式來處理程式的縮排結構。可以使用以下命令,啟用cindent縮排結構:

:set cindent

smartindent 在這種縮排模式中,每一行都和前一行有相同的縮排量,同時這種縮排形式能正確的識別出花括號,當遇到右花括號(}),則取消縮排形式。此外還增加了識別C語言關鍵字的功能。如果一行是以#開頭的,那麼這種格式將會被特殊對待而不採用縮排格式。可以使用以下命令,啟用smartindent縮排結構:

:set smartindent

autoindent 在這種縮排形式中,新增加的行和前一行使用相同的縮排形式。可以使用以下命令,啟用autoindent縮排形式。

:set autoindent

命令小結
1、>>
Ctrl-Shift-t 增加縮排
2、<<
Ctrl-Shift-d 減少縮排
3、:set shiftwidth=n 設定縮排寬度
4、:set cindent 啟用cindent縮排結構
5、:set autoindent 啟用autoindent縮排結構
6、:set smartindent 啟用smartindent縮排結構