青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴(yán)以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

vim + ctags + taglist + cscope + cppcomplete + global 使用初探

vim + ctags + taglist + cscope + cppcomplete + global 使用初探

由于本人比較喜歡在終端狀態(tài)下的vim,所以gvim下的擴(kuò)展使用的不多。這里介紹的也是我簡單的使用以上擴(kuò)展的一點點體會。請大家指正。 emacs 不會用,也沒有比較過拉。



1、大體感覺,(因為使用時間不長,不全面)
總體使用的感覺定位查找類型定義基本可以用,但自動補(bǔ)全類型方面由于ctags的功能有限,感覺在大工程時,不一定很好用。

大型程序一定要global的參與,它的分析比較全面,但在vim中的提示信息有限。

taglist 精干,需要ctags的支撐,直接可以在左邊列出函數(shù)列表,全局參數(shù)列表。(可以排序)

cscope 比較強(qiáng)大,可以對函數(shù)以及部分類型定義進(jìn)行跳轉(zhuǎn),但有些BUG,好像在某些條件下無法正確找到分析枚舉的定義。

cppcomplete 需要ctags的支撐,可以補(bǔ)全類型或者函數(shù)名(可不是普通Ctrl+P/N的那種)

global 新版本可以嵌入vim使用,提供比較完整解析和類型索引,和cscope比,稍微差些的就是對類型引用的打印列表中沒有標(biāo)識這個引用在什么函數(shù)中進(jìn)行的。其實我的感覺global可能不是為vim所生,它的主要目的是用html的方式進(jìn)行表達(dá)相關(guān)的關(guān)聯(lián)關(guān)系和索引,使用起來感覺沒有cscope的那么貼切。



2、相關(guān)的擴(kuò)展的安裝
代碼:

apt-get install exuberant-ctags cscope global

cppcomplete 和 taglist 要到www.vim.org的擴(kuò)展列表中下載。

taglist 的下載地址:
http://www.vim.org/scripts/script.php?script_id=273
cppcomplete 的下載地址:
http://www.vim.org/scripts/script.php?script_id=527

然后在 建立目錄
代碼:

$HOME/.vim/plugin


將下載的cppcomplete.vim 和 taglist.vim拷貝到$HOME/.vim/plugin中。
安裝了global后,最新4.8.6 以上版本有帶vim的擴(kuò)展,將它也拷貝到 $HOME/.vim/plugin

debian sid 版本global安裝后擴(kuò)展文件在
代碼:

/usr/share/doc/global/examples/gtags.vim.gz

需要拷貝到$HOME/.vim/plugin后解壓,解壓方法:
代碼:

gzip -d gtags.vim.gz



3、使用這些工具
1)準(zhǔn)備工作,先修改一下$HOME/.vimrc文件

為了更好的使用cscope請?zhí)砑尤缦聝?nèi)容,這樣Ctrl-]的跳轉(zhuǎn)將由cscope的tags進(jìn)行分析。
代碼:

if has("cscope") set csprg=/usr/bin/cscope set csto=0 set cst set nocsverb " add any database in current directory if filereadable("cscope.out") cs add cscope.out " else add database pointed to by environment elseif $CSCOPE_DB != "" cs add $CSCOPE_DB endif set csverb set cscopetag set cscopequickfix=s-,g-,c-,d-,t-,e-,f-,i- endif


2)使用cscope
cscope的tag生成最簡單的方法是:
在你的開發(fā)工程的最上層目錄執(zhí)行cscope-indexer,它會遍歷下面的所有目錄,生成兩個文件,一個是cscope.files,這個文件記錄需要生成tags的文件名,可以手工修改,另一個是cscope格式的tags文件cscope.out。

完成后,你在生成了cscope.out的目錄打開工程的任意文件,就可以使用Ctrl-]跳轉(zhuǎn)查找類型定義了。
代碼:

cs f s xxxx 查找xxxx出現(xiàn)的地方,它能詳細(xì)列出哪些文件的哪行的哪個函數(shù)引用,以及該行的內(nèi)容,比較不錯。 :)


它的所有命令的使用請參考:
代碼:

help cscope


3)使用taglist
taglist的功能是即時生成當(dāng)前文件的函數(shù)列表和全局變量列表,便于索引。
在vim中命令模式下使用
Tlist 打開或者關(guān)閉當(dāng)前文件的索引;
TlistSync 立即在打開的索引窗口中定位當(dāng)前的光標(biāo)所在位置屬于哪個函數(shù)或者結(jié)構(gòu)定義中。
還有其他命令,請參考它的幫助文件。

4)ctags的使用
其實cscope是用來替代ctags功能的,ctags的應(yīng)用廣泛,還有其他很多的軟件依賴它。

例如要生成cppcomplete需要的tags文件的話,需要運行下面的命令:
代碼:

ctags -n -f cppcomplete.tags --fields=+ai --C++-types=+p * -L cscope.files

注意,我在最后使用了參數(shù)"-L cscope.files" 這僅僅是借用拉cscope生成的文件索引來幫助ctags去查詢相關(guān)工程文件生成tags。

5)使用cppcomplete
cppcomplete的使用我只是簡單的發(fā)現(xiàn)它可以根據(jù)上述方法生成的tags文件來自動補(bǔ)全類型成員。
使用很簡單,就是在你需要補(bǔ)全類型成員時,按F8鍵就可以拉。它一般第一次使用時,需要讓你確認(rèn)是使用已有的tags文件還是再生成一次。一般我們自己控制生成tags文件的時機(jī),它就使用就行拉。
但它也受到ctags的分析能力比較差的限制,可能不是每次都能幫到你。

6)使用global
在工程的最上層目錄執(zhí)行命令:
gtags
等待它完成所有需要的global自己格式的tags的生成
生成完后,需要的就是在生成tags的目錄打開你的工程的任意文件,用如下命令查詢相關(guān)類型引用和關(guān)聯(lián)關(guān)系:
代碼:

Gtags xxxx 查找xxxx的定義 Gtags -r xxxx 查找xxxx的引用 Gtags -s xxxx 查找xxxx出現(xiàn)的地方


它的提示信息很有顯,不如cscope更直觀,但對大型分析的比較完整。
有時它無法正常分析的類型 可以試試用帶-s 的參數(shù)的方式找找類型定義。再不行,我就不清楚拉


4、草草的收尾
我使用它們也是一點一點的摸索的沒有系統(tǒng)的完整的使用過,也受限于本人的Linux使用經(jīng)驗和工作關(guān)系,所以非常簡單的使用體會給大家一個參考,希望能有所幫助。更希望后來者能不斷補(bǔ)充相關(guān)的使用體會。大家都需要交流提高,呵呵。

posted on 2006-09-21 20:11 楊粼波 閱讀(419) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久亚洲精品网站| 亚洲国产小视频| 亚洲人成在线免费观看| 国产精品尤物| 亚洲毛片av在线| 亚洲电影免费观看高清| 午夜精品国产更新| 亚洲一区免费| 欧美日本三区| 亚洲高清资源综合久久精品| 韩国v欧美v日本v亚洲v| 亚洲欧美另类中文字幕| 亚洲男人的天堂在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 久久人人看视频| 国产日韩亚洲欧美| 午夜国产一区| 久久av在线| 国产噜噜噜噜噜久久久久久久久| 亚洲视频一区二区免费在线观看| 亚洲精品在线观看视频| 欧美成人三级在线| 女生裸体视频一区二区三区| 黄色在线一区| 久久精品国产免费观看| 久久精品女人天堂| 国产一区91| 久久国产精品一区二区| 看片网站欧美日韩| 尤物yw午夜国产精品视频明星| 久久精视频免费在线久久完整在线看| 久久国产福利| 伊人久久噜噜噜躁狠狠躁| 久久久久国内| 亚洲激情六月丁香| 99国产精品99久久久久久| 欧美日韩国语| 亚洲无限av看| 久久综合99re88久久爱| 亚洲黄色视屏| 欧美三级精品| 香蕉成人久久| 欧美成人福利视频| 在线视频日韩精品| 国产日本亚洲高清| 久久综合久久综合九色| 日韩视频中文| 久久久久亚洲综合| 亚洲丰满在线| 欧美视频在线一区二区三区| 香蕉久久a毛片| 欧美高潮视频| 午夜精品久久久久久久久久久久久| 国产毛片精品国产一区二区三区| 久久久久久穴| 一区二区久久| 你懂的成人av| 亚洲欧美另类在线| 亚洲二区在线观看| 国产精品久久久久久福利一牛影视| 久久精品成人欧美大片古装| 亚洲国产天堂网精品网站| 午夜精品美女久久久久av福利| 樱桃国产成人精品视频| 欧美三级电影一区| 久久国产色av| 9i看片成人免费高清| 麻豆9191精品国产| 亚洲欧美日韩一区二区| 亚洲东热激情| 欧美午夜不卡视频| 久久久噜噜噜久久人人看| 一区二区三区高清在线| 女生裸体视频一区二区三区| 午夜精品电影| 99re这里只有精品6| 狠狠做深爱婷婷久久综合一区| 欧美日韩国产成人高清视频| 久久久久久夜| 亚洲欧美日韩一区二区| 日韩小视频在线观看| 免费亚洲电影| 久久精品1区| 亚洲女人天堂成人av在线| 亚洲欧洲综合另类| 经典三级久久| 国产一区二区三区四区三区四| 欧美日韩一级黄| 欧美激情bt| 欧美成人一区二区三区片免费| 欧美中文字幕在线视频| 亚洲一区二区视频在线观看| 亚洲精选国产| 亚洲日本在线观看| 亚洲大胆人体在线| 欧美成人午夜影院| 免费在线欧美黄色| 久久亚洲高清| 久久午夜精品| 久久综合久久综合久久| 久久久夜色精品亚洲| 欧美在线播放高清精品| 午夜精品美女久久久久av福利| 亚洲一区二区三区三| 国产精品99久久不卡二区| 一区二区三区 在线观看视频| 日韩系列在线| 一区二区三区四区五区精品视频| 99精品视频免费全部在线| 亚洲毛片在线观看| 在线亚洲精品福利网址导航| 一区二区高清在线观看| 亚洲小视频在线| 亚洲欧美国产日韩天堂区| 亚洲欧美偷拍卡通变态| 欧美一区二区在线观看| 久久日韩精品| 欧美国产日韩二区| 欧美激情在线免费观看| 亚洲人成网站999久久久综合| 亚洲精品国精品久久99热一| 一本色道久久综合亚洲精品婷婷| 中文av字幕一区| 性娇小13――14欧美| 久久久国产成人精品| 欧美成人综合网站| 欧美视频日韩| 国产亚洲一区精品| 亚洲高清不卡在线| 亚洲视屏在线播放| 久久精品国产精品亚洲精品| 美日韩免费视频| 亚洲人成在线观看| 亚洲影院色在线观看免费| 久久成人在线| 欧美成人精品在线观看| 欧美视频成人| 好吊视频一区二区三区四区| 亚洲精品一区二区三区av| 亚洲综合欧美| 欧美丰满高潮xxxx喷水动漫| aa级大片欧美| 久久久久欧美精品| 欧美特黄一区| 永久久久久久| 午夜伦欧美伦电影理论片| 欧美91精品| 亚洲一区二区3| 女人色偷偷aa久久天堂| 国产精品亚洲美女av网站| 亚洲黄色精品| 久久精品国产99| 亚洲精品欧美日韩专区| 欧美中文字幕在线| 欧美日韩一二三区| 亚洲国产精品一区二区久| 亚洲午夜久久久久久久久电影网| 久久亚洲综合| 亚洲一区欧美| 欧美日本成人| 亚洲国产精品t66y| 久久国产欧美精品| 一本色道久久综合亚洲精品按摩 | 影音先锋中文字幕一区二区| 一本久久综合亚洲鲁鲁| 久久综合九色综合欧美狠狠| 亚洲天堂免费观看| 欧美日韩91| 亚洲国产精品尤物yw在线观看 | 久久国产精品网站| 欧美日韩中文字幕在线视频| 亚洲第一天堂无码专区| 欧美一区二区黄| 一本色道久久综合| 欧美精品18+| 亚洲人成网站777色婷婷| 久久久蜜桃一区二区人| 亚洲一区日韩| 国产精品欧美久久久久无广告| 亚洲美女黄色| 亚洲国产欧美国产综合一区| 久久综合中文| 亚洲国产视频一区二区| 免费成人激情视频| 久久久噜噜噜久噜久久| 狠狠干综合网| 麻豆精品视频在线观看| 久久国产婷婷国产香蕉| 国内精品久久久久久| 久久精品国产999大香线蕉| 亚洲欧美日韩国产另类专区| 欧美三级第一页| 亚洲免费在线播放| 亚洲香蕉伊综合在人在线视看| 欧美日韩一区二区三区高清| 一本不卡影院| 在线视频欧美日韩| 国产欧美日韩不卡| 久久婷婷色综合| 美国三级日本三级久久99|