1,先下载 windows下编译好的 cscope.exe linux 下要安装包 运行 apt-get install cscope 命令
windows环境 到http://sourceforge.net/projects/mslk/files/Cscope/
下载 最新的 cscope-15.7.zip 然后解压 把解压后的三个文件 拷贝到你的 gvim.exe 所在的目录
比如我的是 D:\Vim\vim73
2,生成必要文件
运行 cmd cd 到你的 php项目文件夹 比如我的是 D:\PHPnow\htdocs\drupal
运行 dir /s /b *.php *.inc *.module > cscope.files
linux 下面是
find . -name "*.php" -o -name '*.inc' -o -name '*.module' > cscope.files
这个命令会生成一个 cscope.files 文件
你可以打开看一下 就是一个满足上面那个搜索命令的文件列表
解释一下, drupal的函数是定义在 .php .inc .module 这三种后缀名文件里面的 所以我要搜索这三种文件
一般项目只需要 搜索.php 就够了
既使用 dir /s /b *.php > cscope.files *. 是通配符 不解释
3 ,接着运行 cscope -b
会在文件夹下面生成一个 cscope.out 文件
4,修改 vim 配置文件 _vimrc
加入
"cscope定位函数就靠这个文件了 现在载入他 也可以在vim中用命令载入 运行:cs help 查看相关介绍
cs a D:\PHPnow\htdocs\drupal\cscope.out
我一般是不在 _vimrc 里面设置
而是在需要的时候在vim运行 :cs add d:\phpnow\htdocs\drupal\cscope.out 命令
然后就可以查找函数定位了
如果提示 某文件找不到 请运行在vim里面 运行 :pwd 查看vim当前所在的目录 目录不对的 用 :cd 命令 切换到正确目录
下载 http://cscope.sourceforge.net/cscope_maps.vim
放到 $Vim\vimfiles\plugin 目录下
"搜索函数定义的位置
map <C-g> :cs find g <C-R>=expand("<cword>")<CR>
保存之后 退出vim 重新打开vim
当需要查看函数的定义位置的时候,把光标放在 函数名上 按 ctrl + g vim 底部出现
:cs find g 函数名
然后再按 回车键 就可以到函数定义的位置了 返回上一个位置 按 ctrl + o
另外:不使用快捷键的查询
vim command下查询
:cs find s function_name 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
:cs find g function_name 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
本博文解决的问题
:cs find d function_name 查找本函数调用的函数
:cs find c function_name 查找调用本函数的函数 这个也比较有用处
:cs find t function_name 查找指定的字符串
:cs find e function_name 查找egrep模式,相当于egrep功能,但查找速度快多了
:cs find f function_name 查找并打开文件,类似vim的find功能
:cs find i function_name 查找包含本文件的文件