2009/02/04

VIM tip: 將tab取代成space及程式縮排方式

最近找到一個vim的網站 Daily VIM,是關於一些vim tips,裡頭有些東西還不錯,近期如果有空應該會轉錄一些我覺得比較有用的到我這來。

過去將全文裡的tabs取代成space我多半用取代的方式:

:%s/\t/ /cgi

另一作法,vim控制tab距離是靠tabstop (option),若是要根據tabstop來轉換tab成space,可以用這個方法:

:set expandtab
:retab!


其中,tabstop的值可以用類似這種指令來控制:

:set tabstop=2

稍微提一下,expandtab不是只用到這裡,若是想在編輯時自動將tab轉換成space可以用此命令。而取代所有tab成space的命令是retab這行。

在縮排程式時,有另一個常用的情形是這樣,將某行右移一個tab距離,即在normal mode時,輸入>>。若要左移則輸入<<。若要縮排一個區塊則可用V先選擇欲縮排的區塊,再輸入一個<>即可。當然,若是想要多縮幾個tab距離則可以按.來重覆上一個動作。這裡的一個tab距離寬度是用shiftwidth這個option來控制的。

另外,還有一種自動縮排的功能"=",跟之前一樣先選擇一塊區塊用V鍵,再輸入=則自動完成縮排。

No comments: