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

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
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 使用初探

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



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

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

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

cscope 比較強大,可以對函數以及部分類型定義進行跳轉,但有些BUG,好像在某些條件下無法正確找到分析枚舉的定義。

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

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



2、相關的擴展的安裝
代碼:

apt-get install exuberant-ctags cscope global

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

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的擴展,將它也拷貝到 $HOME/.vim/plugin

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

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

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

gzip -d gtags.vim.gz



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

為了更好的使用cscope請添加如下內容,這樣Ctrl-]的跳轉將由cscope的tags進行分析。
代碼:

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生成最簡單的方法是:
在你的開發工程的最上層目錄執行cscope-indexer,它會遍歷下面的所有目錄,生成兩個文件,一個是cscope.files,這個文件記錄需要生成tags的文件名,可以手工修改,另一個是cscope格式的tags文件cscope.out。

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

cs f s xxxx 查找xxxx出現的地方,它能詳細列出哪些文件的哪行的哪個函數引用,以及該行的內容,比較不錯。 :)


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

help cscope


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

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

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

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

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

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

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

Gtags xxxx 查找xxxx的定義 Gtags -r xxxx 查找xxxx的引用 Gtags -s xxxx 查找xxxx出現的地方


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


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

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

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲啪啪91| 国模套图日韩精品一区二区| 亚洲自拍16p| 亚洲一区二区av电影| 亚洲乱码精品一二三四区日韩在线| 老司机凹凸av亚洲导航| 欧美1区2区| 亚洲精品社区| 亚洲欧美电影院| 久久影院午夜片一区| 欧美激情精品| 国产伦精品免费视频| 在线观看欧美精品| 亚洲一区二区三区免费视频| 欧美一区二区三区视频在线| 免费观看久久久4p| 亚洲视频观看| 欧美成人高清| 国产女人18毛片水18精品| 伊人精品视频| 欧美一级视频一区二区| 久久精品伊人| 欧美激情网站在线观看| 亚洲视频第一页| 免费久久99精品国产自在现线| 欧美精品一区二区三区在线播放| 国产伦一区二区三区色一情| 亚洲精品日韩欧美| 久久蜜桃资源一区二区老牛| 日韩视频二区| 免费久久精品视频| 国产日韩欧美在线播放不卡| 日韩亚洲精品视频| 鲁鲁狠狠狠7777一区二区| 中国成人黄色视屏| 欧美精品久久99久久在免费线| 国产亚洲网站| 亚洲欧美日韩精品久久久| 亚洲国产91| 久久精品最新地址| 国产精品一区二区男女羞羞无遮挡| 最新国产成人av网站网址麻豆| 久久成人综合网| 一区二区三区成人精品| 欧美极品色图| 91久久午夜| 欧美成人精品不卡视频在线观看| 亚洲欧美日韩国产综合| 欧美视频免费看| 在线午夜精品| 亚洲国产二区| 麻豆精品国产91久久久久久| 欧美专区日韩视频| 国内在线观看一区二区三区| 欧美一级专区| 亚洲午夜国产成人av电影男同| 欧美日韩福利| 99av国产精品欲麻豆| 亚洲国产色一区| 欧美福利一区二区三区| 99国产精品| 最近看过的日韩成人| 欧美高清成人| 亚洲午夜精品久久| 亚洲一级网站| 国产欧美日韩亚州综合| 久久精品一区二区国产| 久久国产精品99精品国产| 国模一区二区三区| 欧美电影免费| 欧美精品v日韩精品v韩国精品v| 日韩视频免费| 一本久久青青| 国产精品免费视频xxxx| 欧美中文字幕视频| 欧美在线视频一区二区| 在线日韩视频| 日韩视频中文| 国产手机视频精品| 欧美国产在线观看| 亚洲欧美国产三级| 久久久久久久综合色一本| 亚洲高清一二三区| 亚洲人成啪啪网站| 国产精品久久久久久久久久ktv| 欧美一区二区在线免费播放| 久久九九久久九九| 99热在线精品观看| 这里只有精品在线播放| 国产亚洲欧美日韩美女| 欧美国产专区| 国产九九精品| 亚洲激情综合| 国产一区二区三区在线观看精品 | 国产精品激情| 欧美一级在线播放| 美女网站在线免费欧美精品| 亚洲一级一区| 久久一区激情| 午夜亚洲视频| 欧美成人亚洲成人| 久久精品国产99精品国产亚洲性色 | 欲色影视综合吧| 一区二区av在线| 在线观看视频一区二区欧美日韩| 亚洲精品一品区二品区三品区| 国产日韩精品一区二区| 亚洲精品国产品国语在线app| 国产日韩欧美视频| 99精品欧美一区二区三区综合在线| 国产亚洲视频在线观看| 日韩亚洲欧美一区二区三区| 在线观看一区视频| 性欧美1819性猛交| 亚洲在线成人| 欧美日韩亚洲一区二区三区在线 | 欧美成人免费在线观看| 国产精品一区视频网站| 亚洲欧洲在线免费| 亚洲第一中文字幕| 久久国产一区二区| 性做久久久久久久免费看| 欧美精品一二三| 麻豆91精品91久久久的内涵| 国产精品无码永久免费888| 亚洲精品美女在线观看| 亚洲人成人99网站| 久久综合网hezyo| 久久综合久久综合久久| 国产婷婷一区二区| 亚洲天堂网在线观看| 亚洲自拍高清| 欧美日韩日日夜夜| 亚洲精品在线视频| 亚洲午夜伦理| 国产精品户外野外| 亚洲午夜一区二区| 日韩一级免费| 日韩午夜在线视频| 久久综合中文| 亚洲电影在线看| 91久久精品日日躁夜夜躁欧美| 久久久蜜桃精品| 欧美a级一区| 91久久综合亚洲鲁鲁五月天| 免费成人av| 亚洲欧洲在线一区| 亚洲视频axxx| 国产欧美日韩三级| 久久久蜜桃一区二区人| 亚洲第一综合天堂另类专| 日韩一二三区视频| 国产精品久久久久久久久免费| 亚洲专区一区二区三区| 久久天天躁狠狠躁夜夜av| 亚洲大胆美女视频| 欧美美女操人视频| 亚洲资源av| 免费影视亚洲| 一区二区三区 在线观看视频| 国产精品久久久久久av福利软件| 午夜精品一区二区三区在线播放| 美日韩精品视频| 一区二区三区视频免费在线观看| 国产精品五月天| 久久婷婷久久| 亚洲图片在区色| 欧美成人精品在线观看| 一区二区三区波多野结衣在线观看| 国产美女一区| 欧美成人在线免费视频| 9l视频自拍蝌蚪9l视频成人| 久久久www成人免费精品| 亚洲国产精品一区在线观看不卡| 欧美三级电影网| 欧美影院成人| 亚洲伦理中文字幕| 久久夜色精品国产欧美乱| 中国日韩欧美久久久久久久久| 国产亚洲激情| 欧美日韩免费观看一区三区| 欧美中文字幕在线播放| 99国产精品久久| 欧美 日韩 国产一区二区在线视频 | 亚洲毛片av在线| 美女脱光内衣内裤视频久久网站| 日韩视频第一页| 狠狠久久婷婷| 国产精品看片资源| 欧美精品一线| 免费亚洲一区二区| 欧美亚洲视频在线看网址| 亚洲美女电影在线| 欧美激情欧美狂野欧美精品| 久久久亚洲国产天美传媒修理工 | 亚洲男人天堂2024| 一本久久综合| 亚洲巨乳在线| 亚洲国产精品女人久久久| 国产在线精品一区二区夜色|