Cscope具備純正的Unix血統,它最先是由貝爾實驗室爲PDP-11計算機開發的,後來成爲商用的AT&T Unix發行版的組成部分。直到2000年4月,這個工具才由SCO公司以BSD license開源發行。html
Cscope的主頁在http://cscope.sourceforge.net/,若是你的計算機上沒有cscope,你能夠在此處下載它,在寫本文時,它的最新版本是15.8b。mac中能夠用homebrew一鍵安裝。正則表達式
一、cscope的用法很簡單,首先須要爲你的代碼生成一個cscope數據庫。在你的項目根目錄運行:數據庫
cscope -Rbqk
二、這個命令會生成三個文件:cscope.out, cscope.in.out, cscope.po.out。其中cscope.out是基本的符號索引,後兩個文件是使用"-q"選項生成的,能夠加快cscope的索引速度。vim
三、在缺省狀況下,cscope在生成數據庫後就會進入它本身的查詢界面,咱們通常不用這個界面,因此使用了"-b"選項。若是你已經進入了這個界面,按CTRL-D退出。函數
四、Cscope在生成數據庫中,在你的項目目錄中未找到的頭文件,會自動到/usr/include目錄中查找。若是你想阻止它這樣作,使用"-k"選項。工具
五、-R表示索引子目錄。R是遞歸的首字符簡寫。ui
在vim中使用cscope:spa
一、要在vim中使用cscope的功能,須要在編譯vim時選擇"+cscope"。vim的cscope接口先會調用cscope的命令行接口,而後分析其輸出結果找到匹配處顯示給用戶。.net
二、在vim中使用cscope很是簡單,首先調用"cscope add"命令添加一個cscope數據庫,而後就能夠調用"cscope find"命令進行查找了。命令行
三、vim支持8種cscope的查詢功能,以下:
四、 例如,咱們想在vim 7.0的源代碼中查找調用do_cscope()函數的函數,咱們能夠輸入:":cs find c do_cscope",回車後發現沒有找到匹配的功能,可能並無函數調用do_cscope()。咱們再輸入":cs find s do_cscope",查找這個C符號出現的位置,如今vim列出了這個符號出現的全部位置。
五、咱們還能夠進行字符串查找,它會雙引號或單引號括起來的內容中查找。還能夠輸入一個正則表達式,這相似於egrep程序的功能,但它是在交叉索引數據庫中查找,速度要快得多。
六、vim提供了一些選項能夠調整它的cscope功能:
七、vim的手冊中給出了使用cscope的建議方法,使用命令":help cscope-suggestions"查看。
八、Using Cscope on large projects (example: the Linux kernel):http://cscope.sourceforge.net/large_projects.html
九、the vim+cscope tutorial:http://cscope.sourceforge.net/cscope_vim_tutorial.html
十、cscope提供一組命令,能夠在vim裏面更換連接,就是能夠更換不一樣的cscope.out文件。
:cs show //顯示當前鏈接 :cs reset //從新初始化鏈接 :cs kill {number|partial_name} //終止某個鏈接
十一、顯示一個簡短的cscope語法概要。
:cs help
參考:https://blog.easwy.com/archives/advanced-vim-skills-cscope/