用vim編寫c/c++程式
vi是unix下最常用的文字編輯器。vim(vi improved)則是它的增強版。有人常常拿vim和emacs比較,vim儘管不象emacs那樣有那麼多的功能,但是比emacs更方便、好用。用過emacs的人肯定會為emacs的一些快捷鍵感到煩惱,有時候用真希望自己有八隻手。vim的學習曲線也不象emacs那麼長,只要看看vim自帶的vitutor,大約只要20分鐘就能掌握vim的用法。對於unix下的c/c++的程式設計師,我推薦你們使用vim+ctags的組合來寫程式。其中原因聽我慢慢道來。(下面對vim的介紹主要是針對5.6以後的版本)
vim支援語法制導和自動縮排
vim會根據檔案的字尾名,如:*.c、*.cpp、*.cc,等,自動設定語法制導(syntax highlighting)。c/c++中的一些保留字,如:if、for、include,等等,就會有不同的顏色,這樣就會減少程式設計師犯錯的可能,閱讀程式的時候相對來說也輕鬆很多。用下面這些命令在vim中檢視有關語法制導的幫助:「:h syntax」、「:h syn-qstart」、「:h syntax-printing」。
vim也支援根據gnu的風格自動縮排,這樣程式設計師編寫出來的**就更易閱讀,而且也有利於培養好的程式設計風格。用下面這些命令在vim中檢視有關自動縮排的幫助:「:h cindent」、「:h cinoptions」、「:h cinoptions-values」、「:h cinkeys」、「:h cinwords」。
使用ctags
vim中已經帶了ctags這個程式。儘管ctags也可以支援其它編輯器,但是它正式支援的只有vim。ctags可以幫助程式設計師很容易地瀏覽源**。用下面的命令可以在源**的根目錄下建立「tags」檔案:
[/home/brimmer/src]$ ctags -r
「-r」表示遞迴建立,也就包括源**根目錄下的所有子目錄下的源程式。「tags」檔案中包括這些物件的列表:
l 用#define定義的巨集
l 列舉型變數的值
l 函式的定義、原型和宣告
l 名字空間(namespace)
l 型別定義(typedefs)
l 變數(包括定義和宣告)
l 類(class)、結構(struct)、列舉型別(enum)和聯合(union)
l 類、結構和聯合中成員變數或函式
vim用這個「tags」檔案來定位上面這些做了標記的物件,下面介紹一下定位這些物件的方法:
1) 用命令列。在執行vim的時候加上「-t」引數,例如:
[/home/brimmer/src]$ vim -t foo_bar
這個命令將開啟定義「foo_bar」(變數或函式或其它)的檔案,並把游標定位到這一行。
:ta foo_bar
3) 最方便的方法是把游標移到變數名或函式名上,然後按下「ctrl-]」。用「ctrl-o」退回原來的地方。
注意:執行vim的時候,必須在「tags」檔案所在的目錄下執行。否則,執行vim的時候還要用「:set tags=」命令設定「tags」檔案的路徑,這樣vim才能找到「tags」檔案。
快速改正錯誤
在vim編輯器的環境下用「:make」就可以編譯程式,當然其前提是在當前目錄下有makefile檔案。執行完「:make」之後,如果程式中有錯誤,就會顯示出來。這時候,游標會自動指向第乙個出現錯誤的地方,而且你還可以看到錯誤的提示。然後,你就可以改正錯誤,而不用手工找到出錯的那一行。記住下面幾個有用的命令:
l 「:cl」列出錯誤
l 「:cn」讓游標指向下乙個錯誤
l 「:cp」讓游標指向上乙個錯誤
l 「:cnew」從頭開始
你甚至可以讓vim識別出其它編譯器而不是gcc的錯誤提示。這對一些開發嵌入式系統的程式設計師這很有用,因為他們很可能用的不是gcc而是其它編譯器。通過設定「errorformat」的值,可以讓vim識別出編譯器的出錯提示。因為不同的編譯器的出錯提示是不同的,所以如果用的不是gcc就要重新設定。
「errorformat」的值是乙個字串,它的格式和c語言的scanf的字串格式相識。
gcc的「errorformat」的值為:%f:%l:\%m。其中「%f」表示檔名,「%l」表示行號,「%m」表示出錯資訊。
用「:h errorformat」檢視詳細的幫助資訊。
用「:h quickfix」、「:h make」、「:h makeprg」、「:h errorfile」檢視其它的資訊。
有用的快捷鍵
下面的這些快捷鍵對程式設計師很有幫助:
在函式中移動游標
[[ 轉到上乙個位於第一列的「 轉到下乙個空行
gd 轉到當前游標所指的區域性變數的定義
* 轉到當前游標所指的單詞下一次出現的地方
# 轉到當前游標所指的單詞上一次出現的地方
括號的匹配
% 用來進行小括號、中括號和大括號的匹配。這要看當前游標指向的是什麼符號了。
其它vim的配置檔案是「.vimrc」,用這個檔案可以配置vim。vim的圖形介面的版本叫gvim。vim也有用於windows平台的版本。
vim的資源
brimmer的主頁:www.linuxaid.com.cn/engineer/brimmer。html格式和word格式的文件可以在主頁上找到。
用VIM編寫C C 程式
vi是unix下最常用的文字編輯器。vim vi improved 則是它的增強版。有人常常拿vim和emacs比較,vim儘管不象emacs那樣有那麼多的功能,但是比emacs更方便 好用。用過emacs的人肯定會為emacs的一些快捷鍵感到煩惱,有時候用真希望自己有八隻手。vim的學習曲線也不象...
用VIM編寫C C 程式
用vim編寫c c 程式 vi是unix下最常用的文字編輯器。vim vi improved 則是它的增強版。有人常常拿vim和emacs比較,vim儘管不象emacs那樣有那麼多的功能,但是比emacs更方便 好用。用過emacs的人肯定會為emacs的一些快捷鍵感到煩惱,有時候用真希望自己有八隻...
用VIM編寫C C 程式
vi是unix下最常用的文字編輯器。vim vi improved 則是它的增強版。有人常常拿vim和emacs比較,vim儘管不象emacs那樣有那麼多的功能,但是比emacs更方便 好用。用過emacs的人肯定會為emacs的一些快捷鍵感到煩惱,有時候用真希望自己有八隻手。vim的學習曲線也不象...