vim ctags cscope 配置
2015-12-29 20:55
519 查看
综述
配置vimrc文件
指定cscope文件
添加键盘映射
生成cscope相应文件
大功告成
在使用cscope之前,要确认vim是否支持cscope,确认方式如下:
:version 查看cscope表之前是否有+号,有+号表示支持cscope,反之不支持
我们在添加这段配置文件之后,若出现了了如下错误:
我们需要将该配置文件注释掉,因为系统已经自动为我们添加了cscope的相关文件
查看aFunc() 函数调用了哪些函数需要输入
cscope帮助信息:
我们可以使用键盘映射来解决这个问题,当要针对某个函数/变量进行搜索的时候,将光标移动到当前函数/变量上;在按下对应的按键即可。
添加按键映射;网上常见的映射是
或者
将Ctrl +@或者Ctrl+\等按键映射起来;但是Ctrl+\按起来在按下sgc等。但是这样比较不方便。。
这里我参照cscope的帮助信息,做到见名知意的原则,进行如下映射:
同事设置按键的timeout信息,这里设置为3s
csd –> 搜索getWebViewPackageName这个函数调用了哪些函数!
cst –> 搜索getWebViewPackageName这个字符串
配置vimrc文件
指定cscope文件
添加键盘映射
生成cscope相应文件
大功告成
综述
在上一篇博文 将Vim配置成为一款强大的编辑工具之 ctags的安装和使用 详细介绍了ctags的使用;在配合介绍一下cscope的安装和使用。在使用cscope之前,要确认vim是否支持cscope,确认方式如下:
:version 查看cscope表之前是否有+号,有+号表示支持cscope,反之不支持
配置vimrc文件
指定cscope文件
这里需要注意set csprg=~/bin/cscope 该行指定了cscope文件的位置;通常情况是不需要指定的。"-- Cscope setting -- " 添加cscope数据库到当前vim if has("cscope") set csprg=~/bin/cscope " 指定用来执行cscope的命令 set csto=0 " 设置cstag命令查找次序:0先找cscope数据库再找标签文件;1先找标签文件再找cscope数据库 set cst " 同时搜索cscope数据库和标签文件 set cscopequickfix=s-,c-,d-,i-,t-,e- " 使用QuickFix窗口来显示cscope查找结果 set nocsverb if filereadable("cscope.out") " 若当前目录下存在cscope数据库,添加该数据库到vim cs add cscope.out "elseif $CSCOPE_DB != "" " 否则只要环境变量CSCOPE_DB不为空,则添加其指定的数据库到vim " cs add $CSCOPE_DB endif set csverb endif
我们在添加这段配置文件之后,若出现了了如下错误:
我们需要将该配置文件注释掉,因为系统已经自动为我们添加了cscope的相关文件
添加键盘映射
通常情况,我们可以通过cscope的帮助信息查看cscope的使用方法;但是使用起来相当的不方便,当我们要搜索某个函数的时候需要手动的输入。例如:查看aFunc() 函数调用了哪些函数需要输入
:cs find c aFunc
cscope帮助信息:
cscope commands: add : Add a new database (Usage: add file|dir [pre-path] [flags]) find : Query for a pattern (Usage: find c|d|e|f|g|i|s|t name) c: Find functions calling this function d: Find functions called by this function e: Find this egrep pattern f: Find this file g: Find this definition i: Find files #including this file s: Find this C symbol t: Find this text string help : Show this message (Usage: help) kill : Kill a connection (Usage: kill #) reset: Reinit all connections (Usage: reset) show : Show connections (Usage: show)
我们可以使用键盘映射来解决这个问题,当要针对某个函数/变量进行搜索的时候,将光标移动到当前函数/变量上;在按下对应的按键即可。
添加按键映射;网上常见的映射是
nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR> nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR>
或者
nmap <C-@>s :scs find s <C-R>=expand("<cword>")<CR><CR> nmap <C-@>g :scs find g <C-R>=expand("<cword>")<CR><CR>
将Ctrl +@或者Ctrl+\等按键映射起来;但是Ctrl+\按起来在按下sgc等。但是这样比较不方便。。
这里我参照cscope的帮助信息,做到见名知意的原则,进行如下映射:
nmap css :cs find s <C-R>=expand("<cword>")<CR><CR> nmap csg :cs find g <C-R>=expand("<cword>")<CR><CR> nmap csc :cs find c <C-R>=expand("<cword>")<CR><CR> nmap cst :cs find t <C-R>=expand("<cword>")<CR><CR> nmap cse :cs find e <C-R>=expand("<cword>")<CR><CR> nmap csf :cs find f <C-R>=expand("<cfile>")<CR><CR> nmap csi :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR> nmap csd :cs find d <C-R>=expand("<cword>")<CR><CR>
同事设置按键的timeout信息,这里设置为3s
set timeoutlen=3000
生成cscope相应文件
详细的信息可以参考http://blog.csdn.net/peng_cao/article/details/48522383#高效的ctags使用方法ctags -R --c++-kinds=+p --fields=+iaS --extra=+q -L ${OUT_PATH}/names.file -f ${OUT_PATH}/tags echo "for create cscope databases.." cscope -Rbq -i names.file
大功告成
csc –> 搜索哪里调用getWebViewPackageName()这个函数csd –> 搜索getWebViewPackageName这个函数调用了哪些函数!
cst –> 搜索getWebViewPackageName这个字符串
相关文章推荐
- VIM编译器显示TAB和TAB转换为空格
- 菜鸟说给菜鸟听之VIM--入门篇(1)
- cygwin下vim方向键不好用的解决方案
- 安装使用Ubuntu之vim必须知道的细节
- Ruby学习笔记二帮助生成Vim添加代码头的代码
- PHP工程师VIM配置分享
- ruby开发vim插件小结
- VIM中设置php自动缩进为4个空格的方法详解
- Vim命令高级用法
- linux Vim基本操作方法
- 搭建Vim为自定义的PHP开发工具的一些技巧
- 使用python开发vim插件及心得分享
- linux系统中使用Vim删除偶数行或者奇数行
- Mac 配置VIM插件 提示"E492:Not an editor command:^M"
- vim配置文件
- Vim编辑器快捷键
- vim的配置(自动缩进,语法高亮等)
- [Linux学习笔记] Linux文本编辑器Vim/Vi
- VIM 去掉~M符号
- ctags --- 每天一个 Linux 命令