以前在某公司實習,是做Ruby on Rails方面的。使用的都是aptana作為IDE,其速度有時候會很慢,然後看到公司某些老員工都是使用Vim做為編譯器。看著他們用vim做成自己的IDE的樣子,頓時對vim很有興趣!於是決定從今天起,練習使用vim編譯器。決定用部落格作為自己的學習日記。
首先在網上下了個gVim72。安裝了下。一些基本設定:
- shiftwidth(縮排的空格數);
- tabstop(定位字元的寬度);
- expandtab(是否在縮排和遇到 Tab 鍵時使用空格替代;使用 noexpandtab 取消設定);
- softtabstop(軟定位字元寬度,設定為非零數值後使用 Tab 鍵和 Backspace 時游標移動的格數等於該數值,但實際插入的字元仍受 tabstop 和 expandtab 控制);
- autoindent(自動縮排,即每行的縮排值與上一行相等;使用 noautoindent 取消設定);
- cindent(使用 C 語言的縮排方式,根據特殊字元如“{”、“}”、“:”和語句是否結束等資訊自動調整縮排;在編輯 C/C++ 等類型檔案時會自動設定;使用 nocindent 取消設定);
- cinoptions(C 語言縮排的具體方式,請參考“:help cinoptions-values”);
- paste(粘貼模式,會取消所有上述選項的影響來保證後面的操作——通常是從剪貼簿粘貼代碼——保持原有代碼的風格;使用 nopaste 取消設定)。
下面給出一些常用的組合:
- shiftwidth=4 tabstop=4:很多 Windows 出身的程式員會習慣這樣的設定,讓縮排等於定位字元寬度。
- shiftwidth=4 tabstop=8:很多 Unix 程式員的設定,仍使用較常用的 4 格縮排,但定位字元寬度為標準的 8。
- cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1 shiftwidth=2 tabstop=8:標準的 GNU 編碼風格的設定,對 Vim 預設的 C 縮排風格作了很多微調,比如,if 語句下的“{”、“}”要在“if”後縮排兩格,但函數定義部分“{”、“}”仍和函數名一行對齊。開源軟體經常使用該種縮排風格。
Vim 支援單詞的自動完成。比如,你前面使用了一個很長的變數名,叫 aLongVariable,下面你在輸入時,就不用完整鍵入了。很可能,你只需要鍵入“aL”,然後按下“Ctrl-P”(向前搜尋可匹配的單詞並完成)就可以得到完整的變數名(沒有得到想要的結果的話,多按幾下“Ctrl-P”;或者前面多輸入幾個字元,如“aLongV”)。類似的命令還有“Ctrl-N”(向後搜尋可匹配的單詞並完成)、“Ctrl-X Ctrl-L”(搜尋可匹配的行並完成)、“Ctrl-X Ctrl-F”(搜尋可匹配的檔案名稱並完成)等,具體可參看“:help ins-completion”。
初次練習使用的命令:
sy : 文法加亮 :sy on 開啟文法加亮 :sy clear 取消文法加亮。
set go= :go是gui option的縮寫。 set go= :沒有菜單 。
colo: 設定顏色。可以選擇自己想要的顏色方法,如colo evening 。
tabnew :開啟一個新的文本。 如tabnew c:/text.txt。
:X 可以給檔案加密。初次使用,覺得個功能非常有用。同時可以使用 :set key= 來解密。同時發現如果自己加密的檔案,逼人看的時候隨便輸入一個密碼,也能進入,但是會顯示亂碼!如果修改了檔案的內容,即後來使用正確的密碼進入的話也會形成亂碼!這麼說從這個角度講:X加密的功能不是那麼強大。
匹配替換:
如 %s/需要替換的內容/替換的新內容 /gc %表示全文 s表示替換 gc表示全部替換 如 :%s/yes/&/r/gc 該命令是把yes替換成yes換行。
在命令模式下,使用GG 可以跳到檔案開始出 2x刪除兩個字元 dd 刪除一行。
可以使用q命令錄製鴻 再次使用q推出錄製宏 使用@來使用錄製的宏。
同時vim還支援強大的外掛程式功能。
初次使用覺得vim確實有非常強大的功能