现在的位置: 首页 > 综合 > 正文

windows下使用vim cscope插件

2017年12月21日 ⁄ 综合 ⁄ 共 2225字 ⁄ 字号 评论关闭

如题,因为相关的资料比较少,所以整理出来方便大家参考

参考资料:

http://blog.csdn.net/bokee/article/details/6633193

http://vim.wikia.com/wiki/Automatically_create_and_update_cscope_database

http://blog.csdn.net/joeblackzqq/article/details/7447606

一 安装cscope

cscope已经是Vim的标准特性,默认都有支持,cscope功能依赖ctags控件,所以默认前提vim已支持ctags插件功能

cscope官方网址为http://cscope.sourceforge.net/(一直连不上,具体不清楚为什么)

1 将cscope.exe放到vim安装目录的可执行文件目录下(eg.“C:\Program Files (x86)\Vim\vim73”)原理与ctags雷同

   cscope.exe下载地址 http://www.softpedia.com/get/Programming/Other-Programming-Files/Cscope-for-Windows.shtml

2 确定Vim已支持cscope后,将文件cscope_maps.vim到vim安装目录存放插件文件的目录下(eg.“C:\Program
Files (x86)\Vim\vimfiles\plugin”


二 使用cscope

cscope根据器生成的数据库文件实现相应功能,所以使用cscope主要分两步

1 创建cscope数据库文件,关联vim与cscope数据库文件

1.1 修改vim工作目录到工程根目录

              这个实现比较简单

      比如工程目录如下 .../project/src/a.c, ".../project"为工程目录,使用vim打开a.c,vim当前的工作路径就是.../project/src

              这是直接在vim内,cd到上一层文件夹:cd ..,该vim的工作目录就变成.../project了

1.2 此时输入Ctrl+F11快捷键,即可实现数据库文件创建和文件与vim关联(这个是修改vim配置文件后生成的快捷键,稍后贴出相应配置内容)    

 在vim中使用cscope浏览工程源码

常用快捷键

Ctrl-\ s 查找所有当前光标所在符号出现过位置
Ctrl-\ c 查找所有调用当前光标所在函数的函数

F3 显示下一条搜索结果(修改配置文件产生的快捷键)

F4 显示上一条搜索结果(修改配置文件产生的快捷键

:cw quickfix窗体显示所有搜索结果,从中挑选可能的结果,进行跳转


三 关于vim配置文件需要添加的代码

”================以下内容可直接拷贝到配置文件中 开始===========

nmap <F3> <esc>:cn<cr>

nmap <F4> <esc>:cp<cr>

nmap <C-F11> :!dir /b /s *.c *.cpp *.h *.hpp > cscope.files<CR>
  \:!cscope -b -i cscope.files -f cscope.out<CR>
  \:cs kill -1<CR>
  \:cs add cscope.out<CR>
nmap <F11> :!dir /b /s *.c *.cpp *.h *.hpp > cscope.files<CR>
  \:!cscope -b -i cscope.files -f cscope.out<CR>
  \:cs reset<CR>
set cscopequickfix=s-,c-,d-,i-,t-,e-

“==========================结束============================

指令讲解 :

cn和:cp是quickfix插件的命令,这里列出是为了方便浏览检索后记录,cn查看下一条记录,cp查看上一条记录

:!dir /b /s *.c *.cpp *.h *.hpp > cscope.files 

列出vim工作目录下的(包括子目录里的)所有.c .cpp .h .hpp文件,结果输出到cscope.files文件中

:!cscope -b -i cscope.files -f cscope.out

在vim工作目录下创建数据库文件cscope.out

:cs kill -1

清除当前vim与所有数据库文件的关联(清除后该vim就无法实现cscope的检索功能了,因为没有数据库文件供其检索)

cs add cscope.out

向当前vim中添加数据库文件,及实现了当前vim与该cscope.out文件的关联

注:如果cscope.out文件不存在,而直接执行cs add指令,会报E563错误

附加:

关于快捷键Ctrl+F11和F11之间的区别

Ctrl+F11相当生成数据库,清楚vim与所有数据库文件关联,将当前数据库文件添加到vim中(功能类似删除加创建)

F11是生成数据库,重新设置数据库文件与vim的关联(功能类似文件替换)

如果vim刚打开源文件,当前是不可以直接使用cscope功能的,vim中没有数据库文件,不存在关联,

此时直接执行F11,cscope还是不能正常使用,必须Ctrl+F11,才可以

之后如果代码修改,再执行F11就可以更新,正常使用cscope功能

以上内容如有不对的地方,欢迎大家及时拍砖

有可以优化cscope使用的方法,也希望大家及时告知

谢谢^_^




抱歉!评论已关闭.