红联Linux门户
Linux帮助

Vim插件——Cscope

发布时间:2016-05-24 09:52:11来源:linux网站作者:OneSea

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。


本文永久更新地址:http://www.linuxdiyf.com/linux/20893.html