vim cscope代碼跳轉(zhuǎn)插件

我用的是https://github.com/chxuan/vimplus這個(gè)項(xiàng)目的vim配置趴酣。感謝作者袭祟。

1. 安裝cscope

可以編譯源碼安裝,也可以直接用包管理器安裝。centos下安裝:

   yum install cscope

2. 安裝cscope.vim

  Plug 'vim-scripts/cscope.vim'

3. vimrc配置cscope快捷鍵

~/.vimrc 中添加如下配置:
" scscope
set cscopequickfix=s-,c-,d-,i-,t-,e-
nnoremap <leader>sa :call cscope#findInteractive(expand('<cword>'))<CR>
nnoremap <leader>sl :call ToggleLocationList()<CR>
" s: Find this C symbol
nnoremap  <leader>ss :call cscope#find('s', expand('<cword>'))<CR>
" g: Find this definition
nnoremap  <leader>sg :call cscope#find('g', expand('<cword>'))<CR>
" d: Find functions called by this function
nnoremap  <leader>sd :call cscope#find('d', expand('<cword>'))<CR>
" c: Find functions calling this function
nnoremap  <leader>sc :call cscope#find('c', expand('<cword>'))<CR>
" t: Find this text string
nnoremap  <leader>st :call cscope#find('t', expand('<cword>'))<CR>
" e: Find this egrep pattern
nnoremap  <leader>se :call cscope#find('e', expand('<cword>'))<CR>
" f: Find this file
nnoremap  <leader>sf :call cscope#find('f', expand('<cword>'))<CR>
" i: Find files #including this file
nnoremap  <leader>si :call cscope#find('i', expand('<cword>'))<CR>

if has("cscope")
    set csprg=/usr/bin/cscope
    set csto=1
    set cst
    set nocsverb
    if filereadable("cscope.out")
        cs add cscope.out
    elseif $CSCOPE_DB != ""
        cs add $CSCOPE_DB
    endif
    set csverb
endif

4. 實(shí)例

4.1 生成cscope.files 文件路徑使用絕對路徑

find `pwd` -name "*.h" -o -name "*.hpp" -o -name "*.cpp" -o -name "*.cc" -o -name "*.c" > cscope.files

4.2 生成cscope.out

cscope -Rbq -i cscope.files
或者
cscope -Rbq // cscope 默認(rèn)在當(dāng)前路徑查找cscope.files

這個(gè)命令會(huì)生成三個(gè)文件:cscope.out, cscope.in.out, cscope.po.out缴啡。
其中cscope.out是基本的符號(hào)索引砸讳,后兩個(gè)文件是使用"-q"選項(xiàng)生成的,可以加快cscope的索引速度诵叁。
上面所用到的命令參數(shù)雁竞,含義如下:
-R: 在生成索引文件時(shí),搜索子目錄樹中的代碼
-b: 只生成索引文件拧额,不進(jìn)入cscope的界面
-q: 生成cscope.in.out和cscope.po.out文件碑诉,加快cscope的索引速度
-k: 在生成索引文件時(shí),不搜索/usr/include目錄
-i: 如果保存文件列表的文件名不是cscope.files時(shí)侥锦,需要加此選項(xiàng)告訴cscope到哪兒去找源文件列表进栽。可以使用“-”捎拯,表示由標(biāo)準(zhǔn)輸入獲得文件列表泪幌。
-I dir: 在-I選項(xiàng)指出的目錄中查找頭文件
-u: 掃描所有文件,重新生成交叉索引文件
-C: 在搜索時(shí)忽略大小寫
-P path: 在以相對路徑表示的文件前加上的path署照,這樣祸泪,你不用切換到你數(shù)據(jù)庫文件所在的目錄也可以使用它了。


4.3 添加cscope.out 到vim

在源碼目錄打開vim
:cs add cscope.out
如果vimrc文件已經(jīng)添加 3 中提到的配置建芙,則會(huì)自動(dòng)執(zhí)行cs add cscope.out

4.3 查看cscope 幫助

image.png
:cs find s: 查找C語言符號(hào)没隘,即查找函數(shù)名、宏禁荸、枚舉值等出現(xiàn)的地方
:cs find g: 查找函數(shù)右蒲、宏、枚舉等定義的位置赶熟,類似ctags所提供的功能
:cs find d: 查找本函數(shù)調(diào)用的函數(shù)
:cs find c: 查找調(diào)用本函數(shù)的函數(shù)
:cs find t: 查找指定的字符串
:cs find e: 查找egrep模式瑰妄,相當(dāng)于egrep功能,但查找速度快多了
:cs find f: 查找并打開文件映砖,類似vim的find功能
:cs find i: 查找包含本文件的文
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末间坐,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌竹宋,老刑警劉巖劳澄,帶你破解...
    沈念sama閱讀 211,423評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蜈七,居然都是意外死亡秒拔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門飒硅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來砂缩,“玉大人,你說我怎么就攤上這事三娩√萸幔” “怎么了?”我有些...
    開封第一講書人閱讀 157,019評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵尽棕,是天一觀的道長喳挑。 經(jīng)常有香客問我,道長滔悉,這世上最難降的妖魔是什么伊诵? 我笑而不...
    開封第一講書人閱讀 56,443評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮回官,結(jié)果婚禮上曹宴,老公的妹妹穿的比我還像新娘。我一直安慰自己歉提,他們只是感情好笛坦,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,535評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著苔巨,像睡著了一般版扩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上侄泽,一...
    開封第一講書人閱讀 49,798評(píng)論 1 290
  • 那天礁芦,我揣著相機(jī)與錄音,去河邊找鬼悼尾。 笑死柿扣,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的闺魏。 我是一名探鬼主播未状,決...
    沈念sama閱讀 38,941評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼析桥!你這毒婦竟也來了司草?” 一聲冷哼從身側(cè)響起活翩,我...
    開封第一講書人閱讀 37,704評(píng)論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎翻伺,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沮焕,經(jīng)...
    沈念sama閱讀 44,152評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吨岭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,494評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了峦树。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辣辫。...
    茶點(diǎn)故事閱讀 38,629評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖魁巩,靈堂內(nèi)的尸體忽然破棺而出急灭,到底是詐尸還是另有隱情,我是刑警寧澤谷遂,帶...
    沈念sama閱讀 34,295評(píng)論 4 329
  • 正文 年R本政府宣布葬馋,位于F島的核電站,受9級(jí)特大地震影響肾扰,放射性物質(zhì)發(fā)生泄漏畴嘶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,901評(píng)論 3 313
  • 文/蒙蒙 一集晚、第九天 我趴在偏房一處隱蔽的房頂上張望窗悯。 院中可真熱鬧,春花似錦偷拔、人聲如沸蒋院。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽欺旧。三九已至,卻和暖如春蛤签,著一層夾襖步出監(jiān)牢的瞬間切端,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評(píng)論 1 266
  • 我被黑心中介騙來泰國打工顷啼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留踏枣,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,333評(píng)論 2 360
  • 正文 我出身青樓钙蒙,卻偏偏與公主長得像茵瀑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子躬厌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,499評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • https://blog.csdn.net/donahue_ldz/article/details/1713936...
    SpawnMC閱讀 344評(píng)論 0 0
  • 1. 關(guān)于Vim[http://www.reibang.com/u/8f92553043e7] vim是我最喜歡...
    7ColorLotus閱讀 1,482評(píng)論 0 4
  • 前言 看源代碼是一個(gè)程序員必須經(jīng)歷的事情,也是可以提升能力的一個(gè)捷徑.個(gè)人認(rèn)為: 要完全掌握一個(gè)軟件的方法只有閱讀...
    Yonah瀟閱讀 10,257評(píng)論 0 5
  • 本文非原創(chuàng)马昨,引用自:http://easwy.com/blog/archives/advanced-vim-ski...
    1angxi閱讀 9,037評(píng)論 0 2
  • 推薦指數(shù): 6.0 書籍主旨關(guān)鍵詞:特權(quán)竞帽、焦點(diǎn)、注意力鸿捧、語言聯(lián)想屹篓、情景聯(lián)想 觀點(diǎn): 1.統(tǒng)計(jì)學(xué)現(xiàn)在叫數(shù)據(jù)分析,社會(huì)...
    Jenaral閱讀 5,705評(píng)論 0 5