使用vim + cscope/ctags,就可以實現(xiàn)SourceInsight的功能,以后可以不再用盜版SouceInsight讀代碼了。
按照vim里cscope的參考手冊(在vim中執(zhí)行”:help cscope”命令),把cscope功能加到.vimrc里后(需要你的vim在編譯時選擇了”–enable-cscope”選項,否則你需要重新編譯vim),配置就算完成了。然后用下面的命令生成代碼的符號索引文件:
這個命令會生成三個文件:cscope.out, cscope.in.out, cscope.po.out。
其中cscope.out是基本的符號索引,后兩個文件是使用”-q”選項生成的,可以加快cscope的索引速度。
上面所用到的命令參數(shù),含義如下:
-b:?只生成索引文件,不進入cscope的界面
-k:?在生成索引文件時,不搜索/usr/include目錄
-q:?生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
接下來,就可以在vim里讀代碼了。
不過在使用過程中,發(fā)現(xiàn)無法找到C++的類、函數(shù)定義、調(diào)用關(guān)系。仔細閱讀了cscope的手冊后發(fā)現(xiàn),原來cscope在產(chǎn)生索引文件時,只搜索類型為C, lex和yacc的文件(后綴名為.c, .h, .l, .y),C++的文件根本沒有生成索引。不過按照手冊上的說明,cscope支持c++和Java語言的文件。
于是按照cscope手冊上提供的方法,先產(chǎn)生一個文件列表,然后讓cscope為這個列表中的每個文件都生成索引。
為了方便使用,編寫了下面的腳本來更新cscope和ctags的索引文件:
#!/bin/sh find . -name "*.h" -o -name "*.c"-o -name "*.cc" > cscope.files cscope -bkq -i cscope.files ctags -R
這個腳本,首先使用find命令,查找當(dāng)前目錄及子目錄中所有后綴名為”.h”, “.c”和”.cc”的文件,并把查找結(jié)果重定向到文件cscope.files中。
然后cscope根據(jù)cscope.files中的所有文件,生成符號索引文件。
最后一條命令使用ctags命令,生成一個tags文件,在vim中執(zhí)行”:help tags”命令查詢它的用法。它可以和cscope一起使用。
目前只能在unix系列操作系統(tǒng)下使用cscope,雖然也有windows版本的cscope,不過還有很多bug。在Linux技術(shù)中堅站上看到有作者在win2000上成功運行了gvim + cscope,詳情可以參閱:
http://www.chinalinuxpub.com/bbs/showthread.php?t=30185
(2009/04/06更新)網(wǎng)友mslk提供了cscope 15.7的win32編譯版本下載,下載地址:
http://sourceforge.net/project/showfiles.php?group_id=196604&package_id=232374
感謝他的辛勤工作,大家有時間去他的MSLK項目看看,這個項目目的是為Linux下的工具提供預(yù)編譯的windows版本。
在vim的網(wǎng)站上,也有人在cygwin中成功運行了vim + cscope,詳情請參閱:
http://vim.sourceforge.net/tips/tip.php?tip_id=338
另外,還有人在windows上安裝了XFree86包,然后在Xwindow中運行g(shù)vim + cscope。這同樣可以在上面的網(wǎng)頁中看到。
cscope的主頁在:http://cscope.sourceforge.net/
在vim的網(wǎng)站上,有很多和cscope相關(guān)的插件,可以去找一下你有沒有所感興趣的。搜索結(jié)果在這里: 點這里
另外,我的vim使用進階系列文章介紹了vim的更多特性。
轉(zhuǎn)載自易水博客 [ http://easwy.com/blog/ ]