Vim-Cscope教程
Cscope是一个非常方便的工具, 它会为你的编辑器(即Vim)带来很好的舒适性.8.到日前为止,我们只用到了' cscope maps,vim'的热键,所有的搜索都与Vim中的光标有关. Cscope搜索有一个老办法(用Vim的内建 Cscope),用": cscopefind symbol foo"命令(或者简单点,": cs f s foo"),对」可水平分割的版本,可以用": oScOpe"(或":scs").如果要搜索的词就在光标下,用热健更简单,命令行的方式可以让你搜索任何标识符,所以要根据实际情况选择9.到目前为止,我们只用了一种搜索方法:‘s',查找标识符的使用情况。试一下 Cscope的其他用法:g',查找全局定义的标识符;'c',查找一个函数的所有调用;"f'打开光标所指的文件名(注意:因为 Cscope默认从/usr/ include查找头文件,可以用这个功能打开大部分标准头文件).这些都是我最常用的,但是还有其他的(在 cscope maps.vim文件可以找到所有的用法,也可以看 Cscope的man手册)10.虽然 Cscope最初只支持C语言,实际上它是个非常灵活的工具,可以支持类似C++和Java这样的语言.你可以把它想象成一个通用的'grep'数据库,它的作用是分析函数调用和变量定义等类似的结构, Cscope默认只能鮮析当前目录(用R’选项可以包括子目录)下的C,Lex,和yacC文件(.C,.h,.L,,y),目前还无法修改文件扩展列衣(我们应该改变这个现状).所以你必须做个要解析的文件列表,命名为' Cscope. files"(如果用' cScope- i foofile'命令,就可以随意命名).有一个简单(而且十分灵活)的方法是通过Unix的find"命令find.-name *java>cscope files然后执行' Cs cope-b′重新构建数据库(‘-b’会让 Cscope只构建数据厍而不启动GUI),你就可以浏览Java文件中的所有标识符.很多人用 Cscope米浏览和编辑大量的文档文件,说明 Cscope解析器是非常灵活的。对于人的项目,你可能需要用-q选项,并且使用更复杂的'find'命令,在tutorial on using Cscope with large projects可以得到更多信息11.尝试通过设置SCsC0PEDB环境变量来指定·个你创建的 Cscope数据库,这样就不用总是在数据库的目录下启动Vim.这种用法多用于代码分别放在多个子目录的项目。注意:这种情况下,应该用绝对路径米构建数据库:cdtofind /my /project/dir-name *.C-0-name*,h'>/foo/cscope files然后在 cScope,fies的日录下运行 Cscope(或者用' CScope-i/foo/ Cscope.fies"),然后设置并到处$ CSCOPE DB变量,让它指向Cscope.out文件):cd /fooCScopeCSCOPE DB=/foo/cscope out; export CSCOPE DB(上面最后一条命令是针对 Bourne/Korn/Bash的:我已经忘了在基于csh的shell中如何导出变量,因为我不喜欢它)现在应该可以在任何目录下运行'vim-tfoo',并且会准确的跳到定义'foo'的地方,我通常会为不同的项目写一个小的5heLL脚本(仅用于定义和导出CSCOPE DB),以后只需用一个' source projectA’命令来选择它们BUG:在 Cscope v15.4之前的版本,有一个愚蠢的Bug,当执行上面的命令时,可能会导致Vim停止工作,除非你调用你√fQ的数据库是不用默认的(cspe.out:用千10命名为千oo.0Ut12.就是这样!如果有什么问题的话就用": help cscope"(Vim)或" man csco pe"(根据你的SheL),还可以学习细微之处Cscope support added to Vim by andy KahnTutorial and cscope maps. vim by Jason DuellCscope art by petr SofaBack to the Cs cope home page
用户评论
整理得很好,虽然东西不是讲的太全。
很实用,很方便!
我 看过了的,你只要注意一点,在最大的目录下,用vim打开你想打开的文件,不然的话,是没有效果的...
不错,挺实用的,参照这个还是有些收获的