怎麼用vim高效的寫C

來源:互聯網
上載者:User

給大家推薦一篇好文章:關於怎麼用vim高效的寫C ,其中的ctags功能根source insight差不多。
如果你就願意在linux工作, 而不用每次都把把代碼copy到windows 下,再用source insight 。。。。。。。^_^ 太慢了,麻煩。 
用ctags好處下面都說道了,我覺得還有一個地方,跟系統有關,你可以方面的找到一個宏定義 Ctrl -],不用再grep ,累死了。 ^_^
還有一個功能下面的文章沒有提到: 就是 把游標定位到系統函數,比如sprintf  ,按住shitf + k ,^_^肯定會有驚喜! 比每次 man sprintf ,效率塊多了。如果不是這篇文章,哦就要轉到emacs了,老天對俺不薄 。

用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”(變數或函數或其它)的檔案,並把游標定位到這一行。
2)        在vim編輯器內用“:ta”命令,例如:
: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的資源
VIM的首頁:http://www.vim.org/。
著作權說明
這篇文章的著作權屬於作者brimmer(brimmer@linuxaid.com.cn)和www.linuxaid.com.cn。如果要轉載請加上著作權提示。
Brimmer的首頁:www.linuxaid.com.cn/engineer/brimmer。HTML格式和Word格式的文檔可以在首頁上找到。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.