Vim是一個(gè)強(qiáng)大的文本編輯器。我們?cè)趙in32平臺(tái)下用VC寫代碼的時(shí)候,常常比較習(xí)慣VC給予的一些格式控制和代碼補(bǔ)全功能,而這些功能都是可以在vim中實(shí)現(xiàn)的,并且,已經(jīng)有前人為我們寫好了插件腳本,我們只需要非常簡(jiǎn)單的設(shè)置,就可以迅速的構(gòu)建出類似VC的C++編譯環(huán)境。
Vim的配置文件通常在~/.vimrc中。我們首先可以加入這樣兩句:
syntax on //語(yǔ)法高亮打開,這樣我們就可以看倒C/C++的關(guān)鍵字成為了彩色;
:set cin! //C縮進(jìn)打開,這樣vim會(huì)自動(dòng)判斷縮進(jìn)的設(shè)置;
完成這樣的設(shè)置后,當(dāng)我們創(chuàng)建或者打開vim所能識(shí)別的C/C++源文件的時(shí)候,我們就可以看到關(guān)鍵字的顏色以及自動(dòng)的縮進(jìn)了。
需要指出的一點(diǎn)是,按照Unix源程序的習(xí)慣,我們最好以ASCII編碼來(lái)寫程序,而Debian的內(nèi)部編碼默認(rèn)是UTF-8。當(dāng)然,如果我們vim創(chuàng)建的文件沒有漢字等其他字符的時(shí)候,產(chǎn)生的文件自動(dòng)是ASCII編碼的,但是,某些插件,比如vim的c-support插件會(huì)自動(dòng)添加文件的創(chuàng)建日期,這樣,因?yàn)槲覀兿到y(tǒng)默認(rèn)語(yǔ)言一般是zh_CN,所以就會(huì)產(chǎn)生中文的日期顯示。所以,一個(gè)解決方法是在運(yùn)行創(chuàng)建cpp文件的vim的時(shí)候,指定使用的語(yǔ)言,或者,干脆做一個(gè)alias來(lái)簡(jiǎn)單使用:
alias cvim='LC_ALL=C vim'
這樣,就可以確保創(chuàng)建的cpp文件不帶非ASCII字符。
接下來(lái),我們簡(jiǎn)單了解一下ctags。簡(jiǎn)單說,ctags是為許多計(jì)算機(jī)語(yǔ)言的源代碼文件做索引,以提供給編輯器(比如我們的vim)使用的。我們先看看ctags的幫助:
ctags --help
以下信息是我們將用到的:
-R Equivalent to --recurse.
--recurse=[yes|no] Recurse into directories supplied on command line [no].
--languages=[+|-]list
Restrict files scanned for tags to those mapped to langauges
specified in the comma-separated 'list'. The list can contain any
built-in or user-defined language [all].
--fields=[+|-]flags
Include selected extension fields (flags: "afmikKlnsStz") [fks].
--extra=[+|-]flags
Include extra tag entries for selected information (flags: "fq").
我們用這樣的命令在源文件所在的目錄運(yùn)行:(用樣,我們可以做一個(gè)alias,我們最后來(lái)討論這個(gè)問題)
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q
其中參數(shù)的含義是:
原文出處--c++-kinds=+p : 為C++文件增加函數(shù)原型的標(biāo)簽
--fields=+iaS : 在標(biāo)簽文件中加入繼承信息(i)、類成員的訪問控制信息(a)、以及函數(shù)的指紋(S)
--extra=+q : 為標(biāo)簽增加類修飾符。注意,如果沒有此選項(xiàng),將不能對(duì)類成員補(bǔ)全
好了,現(xiàn)在準(zhǔn)備知識(shí)講完了。我們先實(shí)現(xiàn)C++對(duì)象用.或者->調(diào)用方法的時(shí)候自動(dòng)產(chǎn)生選擇的下拉菜單。我們需要的插件是OmniCppComplete,在vim官方這里下載:
http://www.vim.org/scripts/script.php?script_id=1520下載到的是一個(gè)壓縮包,解壓到~/.vim/下相應(yīng)的目錄就可以了。另外,我們需要在~/.vimrc中打開裝載插件:
:filetype plugin on
(或許還需要打開vim對(duì)源代碼的識(shí)別,不過我是沒有用到,Debian 4.0,如果需要的話,再加上:filetype indent on)
另外,我們關(guān)閉vim默認(rèn)的預(yù)覽窗口:
:set completeopt=longest,menu
這樣,當(dāng)我們創(chuàng)建了對(duì)象,用.或者->的時(shí)候,就會(huì)自動(dòng)調(diào)出類方法的選擇窗口了。
另外一個(gè)常見的補(bǔ)全是對(duì)函數(shù)的補(bǔ)全,也有現(xiàn)成的插件可以用code_complete:
http://www.vim.org/scripts/script.php?script_id=1764這個(gè)安裝就更簡(jiǎn)單了,直接把code_complete.vim拷貝到~/.vim/plugin/下面就可以了。
插件的使用方法是,當(dāng)寫完一個(gè)函數(shù),并打上左括號(hào)(之后,按tab鍵就可以看倒函數(shù)參數(shù)列表了,包括重載的函數(shù)。
最后,我們不希望記那么多參數(shù),希望使用起來(lái)簡(jiǎn)單一些,我們只需要在bash運(yùn)行的時(shí)候申明我們的兩個(gè)alias就可以了。在~/.bashrc中添加:
alias vctags='ctags -R --c++-kinds=+p --fields=+iaS --extra=+q'
alias cvim='LC_ALL=C vim'
關(guān)閉終端后重啟動(dòng),可以用type查看我們的新命令已經(jīng)生效了:
lf426@fleet:~$ type vctags
vctags is aliased to `ctags -R --c++-kinds=+p --fields=+iaS --extra=+q'
posted on 2008-05-27 17:29
lf426 閱讀(4734)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
Linux與C++