vim中cscope工具安装与使用

简介:

Cscope是类似于ctags一样的工具,但可以认为她是ctags的增强版,因为她比ctags能够做更多的事。在Vim中,通过cscope的查询,跳转到指定的地方就像跳转到任何标签;她能够保存标签栈,所以通过合适的键盘映射绑定,你能够在函数向后或向前跳转,就像通常使用的tags一样。

 

1 安装

yum -y install cscope  

 

2 添加需要索引的文件(*.php,*.js,*.css.*.sh)

$ cd /home/test/myWork
$ find /home/test/myWork -name "*.js" -o -name "*.sh" -o -name "*.php"   > /home/test/myWork/cscope.files

 

3 建立索引文件(会生成cscope.out文件)

 


$ cd /home/test/myWork
$ cscope -b 

 

 

 

 

4 使用

 

 

 

 

 

4.1 手动加载cscope.out库

:cs add /home/test/myWork/cscope.out

 

 

 

 

 

4.2 ~/.vimrc中加载

$ vim ~/.vimrc


if has("cscope") && filereadable("/usr/bin/cscope")
   set csprg=/usr/bin/cscope
   set csto=0
   set cst 
   set nocsverb
   " add any database in current directory
   if filereadable("/home/test/myWork/cscope.out")
      cs add /home/test/myWork/cscope.out
   endif
endif

 

 

 

 

 

 

4.3 查看库

:cs show

 

 

 

 

 

5 find查找命令

:cs f s ---- 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
:cs f g ---- 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
:cs f d ---- 查找本函数调用的函数
:cs f c ---- 查找调用本函数的函数
:cs f t ---- 查找指定的字符串
:cs f e ---- 查找egrep模式,相当于egrep功能,但查找速度快多了
:cs f f ---- 查找并打开文件,类似vim的find功能
:cs f i ---- 查找包含本文件的文

 

 

 

 

 

6 跳转

 Ctrl+] 将跳到光标所在变量或函数的定义处 
 Ctrl+T 返回
 
:set csto=0

 

 

 

 

‘csto’的值决定了|:cstag|执行查找的顺序。假如’csto’被设置为0,那么cscope数据将会被优先查找,假如cscope没有返回匹配项,然后才会查找tag文件。反之,则查找顺序相反。默认值是0。

 

 

7 cscope查询技巧

有时候cscope查询的结构非常多。可以使用:cs f e ---- 查找egrep模式。进行筛选。

7.1 查询类文件。正则匹配 class Mytest。

:cs f e class Mytest

正则表达式为:class Mytest。会搜索包含class Mytest的文件。

 

7.2 查询函数。正则匹配 n addUser。

:cs f e n addUser

正则表达式为:n addUser。会搜索包含n addUser的文件。

 

技术交流

CleverCode是一名架构师,技术交流,咨询问题,请加CleverCode创建的qq群(架构师俱乐部):517133582。加群和腾讯,阿里,百度,新浪等公司的架构师交流。【架构师俱乐部】宗旨:帮助你成长为架构师!

 

 

你可能感兴趣的:(Vim开发精粹,PHP程序员技术精粹)