【Vim】Cscope安装基础和使用
安装
- 在CentOS下,我们可以直接使用yum命令进行安装
整体步骤
- 安装cscope
- 配置vim配置文件
- 生成cscope.out文件
- 使用cscope命令进行操作
cscope安装
- 在cscope主页进行下载: http://cscope.sourceforge.net
- cent os的用户可以通过yum命令进行安装
yum install cscope
- 安装时需要使用 configure配置项
./configure --with-flex
(注:如果平台是Linux,最好带上 --with-flex选项) - 此外:要在vim中支持cscope,那么在编译vim前还需要配置vim的configure文件,加入一个选项。
./configure --enable-cscope
生成cscope文件步骤
命令:
cscope -Rbkq
R
表示把所有子目录里的文件也建立索引b
表示cscope
不启动自带的用户界面,而仅仅建立符号数据库q
生成cscope.in.out
和cscope.po.out
文件,加快cscope
的索引速度k
在生成索引文件时,不搜索/usr/include
目录
c语言和c++语言在生成cscope文件的时候会有所不同,具体的区别可以查阅网上资料
- 有c++文件的时候,我们需要先生成一个cscope的file文件,然后再使用这个file文件进行cscope的操作,否则生成的cscope.file文件是不准的
- cscope命令执行后,会生成3个文件,cscope.out文件是索引,其余的两个文件是用于加速索引速度的
查找一个目录下指定类型的文件
- 查找所有的c文件:
find . -name '*.c'
- 别的类型,以此类推
配置vim的配置文件
"cscope设置
set cscopequickfix=s-,c-,d-,i-,t-,e-
- 文中有提到把路径改成你自己的源代码路径。这个如何设置的,需要再确认
- cscopequickfix是表示与quickfix相关联的配置
cscope操作命令
:cs f g boot
就可以查看boot()这个函数的定义了。再输入::cs f c boot
就可以查看boot()函数被调用的地方了。是不是很方便呢?但是你可以更方便的进行查找,利用快捷键!要使用快捷键,我们还要对它进行配置。在vimrc文件里再添加如下的语句::cs find s
---- 查找C语言符号,即查找函数名、宏、枚举值等出现的地方:cs find g
---- 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能:cs find d
---- 查找本函数调用的函数:cs find c
---- 查找调用本函数的函数:cs find t
: ---- 查找指定的字符串:cs find e
---- 查找egrep模式,相当于egrep功能,但查找速度快多了:cs find f
---- 查找并打开文件,类似vim的find功能:cs find i
---- 查找包含本文件的文
定义cscope的快捷键
nmap s :cs find s =expand("") :cw
"查找声明nmap g :cs find g =expand("") :cw
"查找定义nmap c :cs find c =expand("") :cw
"查找调用nmap t :cs find t =expand("") :cw
"查找指定的字符串nmap e :cs find e =expand("") :cw
"查找egrep模式,相当于egrep功能,但查找速度快多了nmap f :cs find f =expand("") :cw
"查找文件nmap i :cs find i ^=expand("")$ :cw
"查找包含本文件的文件nmap d :cs find d =expand("") :cw
"查找本函数调用的函数
此外网上还有一个cscope_map.vim 可以下载,下载后,我们可以把cscope_map.vim里从 if has("cscope") 到 endif里边的内容复制到/etc/vimrc里边去
使用上面的快捷键的方法是,将光标定位到你要查找的变量,函数名或者宏定义名处。先按下
Ctrl+/
,松开后快速按下相应的键,比如按下g,表示查找该函数或者变量的定义;按下c表示查找本函数被调用的地方。功能很强大。
简单解释一下上面的快捷键映射
如:
nmap <C-/>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap
表示在vim的普通模式下,即相对于:编辑模块和可视模式,以下是几种模式:map
普通,可视模式及操作符等待模式:vmap
可视模式:omap
操作符等待模式:map!
插入和命令行模式:imap
插入模式:cmap
命令行模式<C-/>
表示:Ctrl+/<C-R>=expand("cword")
总体是为了得到:光标下的变量或函数。cword 表示:cursor word, 类似的还有:cfile表示光标所在处的文件名吧<CR><CR>
就是回车吧
posted on 2014-08-05 16:16 JasonJian 阅读(1738) 评论(0) 编辑 收藏 举报