0.开发环境
Ubuntu14.04
Vim7.4
1.安装Vim & cscope
sudo apt-get install vim-gnone
sudo apt-get install cscope
2.安装cscope.vim插件
可以利用Vundle来安装此插件(与上面安装的cscope是不同的,这里安装的是插件,上面安装的是一个独立的工具)。
3.配置&使用
3.1.生成cscope.out库文件
和使用ctags生成tags类似,通过下述命令可以生成cscope.out:
cscope -Rb
3.2.添加目录/库文件
打开vim之后,可以通过下述命名添加目录
:cs add directory
或者
:cscope add directory
也可以将下面语句添加到vim的配置文件.vimrc中
if filereadable("cscope.out")
cs add cscope.out
elseif $CSCOPE_DB != ""
cs add $CSCOPE_DB
endif
这样子就会在打开vim的时候自动加载当前目录下车cscope.out文件。
3.3.find命令
Cscope的功能通过它的子命令find来实现。
:cs find c|d|e|g|f|i|s|t name
其中各个参数意义如下:
s -- symbol:find all references to the token under cursor
g -- global:find global definition(s) of the token under cursor
c -- calls:find all calls to the function name under cursor
t -- text:find all instances of the text under cursor
e -- egrep:egrep search for the word under cursor
f -- file:open the filename under cursor
i -- includes:find files that include the file name under cursor
d -- called:find functions that function under cursor calls
3.4.快捷键映射
为了便于查找,可以在.vimrc中设置上述各命令的快捷映射:
nmap <S-s> :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <C-g> :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <S-c> :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <S-t> :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <S-e> :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <S-f> :cs find f <C-R>=expand("<cword>")<CR><CR>
nmap <S-i> :cs find i ^<C-R>=expand("<cword>")<CR>$<CR>
nmap <S-d> :cs find d <C-R>=expand("<cword>")<CR><CR>
使用时,将光标停留在要查找的对象上,按下Ctrl + g,将会查找该对象的定义(这里使用Ctrl是为了避免和vim的原有快捷方式冲突);其它的快捷方式使用如Shift + s/c/t/e/f/i/d。