vim中 使用 cscope 实现 php函数定位 linux windows都可以实现_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > vim中 使用 cscope 实现 php函数定位 linux windows都可以实现

vim中 使用 cscope 实现 php函数定位 linux windows都可以实现

 2010/12/15 8:02:02  quqiufeng  http://quqiufeng.javaeye.com  我要评论(0)
  • 摘要:在vim中我们查看源代码时,有时候需要到函数定义的地方去看一下函数的具体代码是怎么样的。这篇文章就是解决这个问题。1,先下载windows下编译好的cscope.exelinux下要安装包运行apt-getinstallcscope命令windows环境到http://sourceforge.net/projects/mslk/files/Cscope/下载最新的cscope-15.7.zip然后解压把解压后的三个文件拷贝到你的gvim.exe所在的目录比如我的是D:\Vim\vim732
  • 标签:Windows Linux PHP 实现 使用 函数 PHP函数 定位

在vim中我们查看源代码时,有时候需要到函数定义的地方去看一下函数的具体代码是怎么样的。这篇文章就是解决这个问题。


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? ?查找包含本文件的文件



我的博客??http://hi.baidu.com/quqiufeng/blog/category/Vim??
我的手工艺小站??http://www.beauty-mood.com/

发表评论
用户名: 匿名