法1 使用mlcscope
html
vim當中默認使用cs或者cscope命令java
可是cygwin當中的cscope不是使用cscope調用的,而是mlcscopelinux
因此查看本地是否有mlcscope,若有則作軟連接數據庫
ls /usr/bin/mlcscopevim
ln -s /usr/bin/mlcscope /usr/bin/cscopewindows
ls /usr/bin/cscope(若是沒有則在Cygwin安裝管理器中安裝 vim cscope ctags,再作軟連接)svn
cygwin上使用vim+cscope+ctags閱讀源碼
From: http://blog.csdn.net/linwhwylb/article/details/6526637
函數
1.須要安裝的東西學習
vimui
cscope
ctags
在cygwin更新管理中輸入上面三個關鍵詞進行搜索便可。
vim當中默認是使用cs或者cscope命令的,可是cygwin當中的cscope不是使用cscope調用的,而是mlcscope。
建立一個軟鏈接便可。
$ ln -s /usr/bin/mlcscope /usr/bin/cscope
進入到源碼的目錄,執行下面的命令
$ cscope
$ ctags *
生成cscope.out以及tags文件,進入vim,而後執行:cs add cscope.out便可,接下來就可使用:cs find g 符號
之類的命令進行符號定義搜索了。Ctrl + T返回,Ctrl + ]跳轉到目標定義處。
From: http://www.vimer.cn/2009/10/%E5%9C%A8vimgvim%E4%B8%AD%E4%BD%BF%E7%94%A8cscope.html
不支持的話要從新編譯vim,加上支持選項:
--enable-cscope
下載cscope:
最後把cscope放進環境變量
搭建好了vim+cscope的環境以後,那麼如今就是咱們學習怎麼用的時候了
調用這個函數就能夠用cscope生成數據庫,並添加到vim中,具體每一個命令意義以下:
上面的函數,經過操做系統的不一樣,用不一樣的命令實現,將當前目錄的源碼文件導入到一個叫作cscope.files的文件中。這個文件是cscope用來生成數據庫時的默認存儲文件列表的文件。
不理解dir命令?看看這篇文章吧
http://hi.baidu.com/moodmusic/blog/item/888856ed309605d7b21cb141.html
這個命令就是csope在生成數據庫,你會發現生成了一個cscope.out的文件,這個就是生成數據庫,實際上若是加上參數-q來加快索引速度的話,還會生成cscope.in.out, cscope.po.out這兩個文件,各個參數意義以下:
-b : 默認狀況下,cscope在生成數據庫後,會進入cscope本身的界面,咱們在vim中使用他,固然不但願有這樣的界面,就能夠用-b來屏蔽掉。
最後這一步,就是在vim中添加了cscope.out這個數據庫。
下面列出cscope的經常使用生成數據庫選項:
好了,到了這裏,cscope的原理你們應該都清楚了,那麼在vim中怎麼使用呢?
可是誰也不想敲這麼多命令吧,因此我在vimrc中建了這樣一個映射:
實際上就是參考 cscope_maps.vim 這個文件,你們能夠去下載他,而後直接放到plugin目錄就行。
最後,咱們來講一下cscope和ctags的兼容問題。我在vimrc中配置了一段代碼:
官方解釋以下:
http://vimcdoc.sourceforge.net/doc/if_cscop.html
簡單來講,主要功能就是同時搜索ctags和cscope的標籤,而且cscope優先掃描。
Tips:
1 windows下的cscope須要設置TMPDIR的環境變量,不然不能cscope -b
2 cscope.files儘可能用find生成,應該我的需求不一樣,譬如.svn不索引,.cxx不索引等等
3 若是生成了cscope.out 可是在其餘目錄中直接cs add,會不能jump。
解決方法是加上pre-dir
cscope add PATH1/cscope.out PATH2
其中PATH1是cscope.out的pathPATH2是當前目錄下能夠正確jump到索引處的pre-path
進入到源碼的目錄
cscope -Rbq
生成cscope.out以及tags文件 cscope.out, cscope.in.out, cscope.po.out
其中cscope.out是基本的符號索引
後兩個文件是使用」-q「選項生成的,能夠加快cscope的索引速度。
進入vim,而後執行:cs add cscope.out
接下來就可使用cscope
cscope add 'PATH' (注意 PATH要加引號 不然在vimrc中可能會報錯)
同時能夠在vimrc中設立鍵位綁定
cscope的經常使用選項:
-R: 在生成索引文件時,搜索子目錄樹中的代碼(遞歸搜索)
-b: 只生成索引文件,不進入cscope的界面
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k: 在生成索引文件時,不搜索/usr/include目錄
-i: 若是保存文件列表的文件名不是cscope.files時,須要加此選項告訴cscope到哪兒去找源文件列表。可使用」-「,表示由標準輸入得到文件列表。
-Idir: 在-I選項指出的目錄中查找頭文件
-u: 掃描全部文件,從新生成交叉索引文件
-C: 在搜索時忽略大小寫
-Ppath: 在以相對路徑表示的文件前加上的path,這樣,你不用切換到你數據庫文件所在的目錄也可使用它了。