1.ctags
(1)到 http://prdownloads./ctags/ctags-5.6.tar.gz 下載ctags源碼ctags-5.6.tar.gz
(2)解壓并安裝 假設(shè)在家目錄下taogle用戶的目錄下:
(3)使用 <1> 對于一個工程文件夾如:cd /home/taogle/vimPlungTest/src <2> 建立ctags文件,在該目錄下運行 ctags -R —— "-R"表示遞歸創(chuàng)建,也就包括源代碼根目錄下的任何子目錄下的源程式(如果你的源碼是多層的目錄, 就去最上層的目錄)。從而在src目錄下建立了一個“tags”文件,"tags"文檔中包括這些對象的列表。
如果修改程序后,比如增加了函數(shù)定義,刪除了變量定義,tags文件不能自動rebuild,必須再次在當(dāng)前"tags"文件所在的目錄下運行 $ctags -R
l 用#define定義的宏
注意: 運行vim的時候,必須在"tags"文檔所在的目錄下運行。否則,對于該例子還要在運行vim的時,用 " :set tags= /home/taogle/vimPlungTest/src " 命令來設(shè)定"tags"文檔的路徑,這樣vim才能找到"tags"文檔。
如果經(jīng)常在這個工程編程的話,可以將 " set tags= /home/taogle/vimPlungTest/src "這句話寫進(jìn)~/.vimrc 文件中去直接作為vim的配置文件。當(dāng)然這個路徑隨著工程目錄的變化要隨時作調(diào)整。(切記tags后面的"="一定不能有空格,否則vim會報 E518錯誤 )
強烈推薦以下的方法:在vimrc中加入以下的句子: if getfsize("vimscript")>0 source vimscript endif
然后在工程tags文件所在的目錄下(如:" /home/taogle/vimPlungTest/src" )新建一個叫做“vimscript”的文件,在文件中添加以下的內(nèi)容: set tags= /home/taogle/vimPlungTest/src "或者 /home/taogle/vimPlungTest/src/tags set tags+= /home/taogle/vimPlungTest/src/tags.lib "這一句通常可以沒有 這樣每次啟動vim就會自動運行vimscript腳本中的句子,從而可以自動找到tags所在的目錄。 并在vimscript文件中加入如下一行就可實現(xiàn)在vim中每次打開vim編輯時都重新生成關(guān)于c++的tags文件: ! ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=c++ —— ! command //實現(xiàn)在vim中運行shell
或者為了更加簡單 ,在vimrc中添加以下的句子,就可以在進(jìn)入vim后,按下Ctrl+F12組合鍵(每當(dāng)有代碼更新的時候,時不時按下以更新tags),在當(dāng)前目錄下尋找所有的c/c++文件,從而在當(dāng)前目錄下建立tags文件:
map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR>
快捷鍵: <1> 把光標(biāo)移到變量名或函數(shù)名上,然后按下"Ctrl-]"。用"Ctrl-o"或“Ctrl-t”退回原來的地方。
2. taglist
taglist的功能是即時生成當(dāng)前文件的函數(shù)列表和全局變量列表,便于索引。 能夠列出源文檔中的tag(function, class, variable, etc)并跳轉(zhuǎn). 注意:taglist依賴于ctags,所以要先裝ctags,否則taglist裝了也沒法用!
(1) 在http://vim./scripts/download_script.php?src_id=6416 下載得到 taglist_42.zip
cd /home/taogle $ unzip -d taglist taglist_42.zip
(3)安裝
(4)配置和使用 啟動vim,可使用 “:helptags .”來配置好幫助文件,并能夠用來查看; 重啟vim,用“:TlistToggle”來打開和關(guān)閉taglist窗口。
在 /usr/share/vim/中的文件vimrc中添加關(guān)于taglist的常用配置命令如下: ============================== let Tlist_Ctags_Cmd = '/usr/bin/ctags' "設(shè)定Linux系統(tǒng)中ctags程序的位置
==============================
(5)使用
<1> 切換函數(shù)列表的開、關(guān) ==> 或者使用 “:TlistToggle” 在打開和關(guān)閉間切換 ==> 可以用 “:TlistOpen” 打開taglist窗口,用“:TlistClose”關(guān)閉taglist窗口。 ==> 在vimrc中使用如下面的映射,就可以使用 “,tl” 鍵就可以打開/關(guān)閉taglist窗口: map <silent> <leader>tl :TlistToogle<cr>
Taglist插件還提供了很多Ex命令,甚至可以用這些命令創(chuàng)建一個taglist的會話,然后在下次進(jìn)入VIM時加載此會話。 Taglist插件還可以與winmanager插件協(xié)同使用。
3. omnicppcomplete 插件(讓vim支持代碼自動補全)
軟件:ctags ctags一般系統(tǒng)默認(rèn)就有。 下載并安裝插件 omnicppcomplete: 假設(shè)在家目錄下存在.vim文件夾, 如: /home/taogle/.vim,如果不存在,在家目錄下建立.vim目錄;然后使用以下的命令: unzip omnicppcomplete-0.41.zip -d /home/taogle/.vim (或者使用:$HOME/.vim) 從而在 /home/taogle/.vim下面解壓出after、autoload、doc三個文件夾。至此 omnicppcomplete的安裝已經(jīng)完成。
千萬要注意 :在unzip前面不能加sudo,否則會使得解壓出的三個文件夾屬性為不可寫(no write),從而造成 omnicppcomplete的不可用,關(guān)于此,筆者有慘痛的教訓(xùn)見以下的帖子: http://forum./viewtopic.php?f=68&t=290726&p=2034064&sid=623c81b6d292d6759a991099b3ebfb24#p2034064
再運行vim,然后在vim的命令模式下輸入 :helptags $HOME/.vim/doc ,這樣可以添加omnicppcomplete的幫助文件到vim。 你可以繼續(xù)輸入:h omnicppcomplete來查看插件提供的文檔,里邊有安裝和使用的所用方法。 在你的vim配置文件(~/.vimrc,沒有可以新添加一個)加上以下幾句: set nocp
//可選項 set completeopt=longest,menu
使用方法: omnicppcomplete主要依賴ctags生成的tags文件來判斷補全的,所以首先應(yīng)該生成一定的信息。也就是說應(yīng)該先把類寫好,然后再生成tags,以后出現(xiàn)對象的 ”.” 或 ”->”成員操作時它自動尋找成員函數(shù)。 在vim編輯文件時按Ctrl+F12,ctags會把這個文件所在目錄以及子目錄的所有文件信息收集生成一個名為tags的文件存在當(dāng)前編輯文件 所在目錄。然后就可以實現(xiàn)代碼自動補全咯。 在~/.vimrc中添加的 map…… 那句宏就實現(xiàn)這個功能。注意,如果要讓新編寫的文件可以使用則需先寫入,命令為 :w 如果在補全時受不了[預(yù)覽]窗口的打擾可以打開vim配置文件加入 set completeopt=menu
4.NERD_commenter.vim 注釋插件,用來注釋掉代碼的工具,支持“//”、“/* */”兩種代碼注釋方式。 安裝很簡單,將解壓的doc文件放在vimfile/doc下,另一個vim文件放在vimfile/plugin下面…… 也是程序員非常實用的一款插件,支持各種語言的補全,只要你能想到的,放心他絕對注釋的了,而且還支持單行注釋,批量注釋,等各種命令映射,在這里,我把最常用的鍵映射在vimrc中配置了一下。 "對NERD_commenter的設(shè)置
let NERDShutUp=1 "支持單行和多行的選擇,//格式 map <c-h> ,c<space> 這樣的話,在光標(biāo)所在行上,按下一次ctrl+h是注釋,再按下一次是取消注釋。 而其內(nèi)建的指令,cm是多行注釋,類似C++的/**/,,cu是取消注釋。
其他的命令: 在Normal或者Visual 模式下:
5.DoxygenToolkit.vim 由注釋生成文檔,并且能夠快速生成函數(shù)標(biāo)準(zhǔn)注釋 安裝:將下載的DoxygenToolkit.vim直接放在vimfile/plugin文件夾下面…… 配置: map fg : Dox<cr>
map fn: DoxAuthor<cr>
map fl: DoxLic<cr>
let g:DoxygenToolkit_authorName="Taogle"
let g:DoxygenToolkit_licenseTag="My own license/<enter>" let g:DoxygenToolkit_undocTag="DOXIGEN_SKIP_BLOCK" let g:DoxygenToolkit_briefTag_pre = "@brief/t" let g:DoxygenToolkit_paramTag_pre = "@param/t" let g:DoxygenToolkit_returnTag = "@return/t" let g:DoxygenToolkit_briefTag_funcName = "no" let g:DoxygenToolkit_maxFunctionProtoLines = 30
這樣在vim的normal模式下,將光標(biāo)放到文件的頭部,按下fn就會對文件加上文檔注釋 將光標(biāo)放到函數(shù)的定義的前面一行,按下fg就會對函數(shù)進(jìn)行注釋 按下fl,進(jìn)行授權(quán)注釋
6.a.vim .cpp和.h文件快速切換 把下載的a.vim放到plugin下,不需要配置。 直接可以:A,打開.cpp和.h對應(yīng)的文件,:AV,打開.cpp和.h對應(yīng)的文件,并且分屏顯示 或者在vimrc中寫下如下的映射,快捷鍵映射 map av : AV<cr>
(最常用)
還有其他的幾個命令如下: :A switches to the header file corresponding to the current file being edited (or vise versa)
7. AddCppClass: 幫助你快速添加一個C++類 http://www./scripts/script.php?script_id=2986 安裝方法同4.NERD_commenter
可以在vimrc中設(shè)置快捷鍵 map cs : AddCppClass<cr> 從而在使用時,在normal模式下按下cs就可以提示添加一個類……
8.grep.vim,在工程中快速查找
常用命令--> :Grep
但是這個插件挺難用的,只能慢慢摸索著用了
|
|