vim下用ctags+cscope查找切换

来源:互联网 发布:电销数据购买 编辑:程序博客网 时间:2024/06/05 19:55

 

i.             about ctags

1安装ctags

sudo apt-get install ctags

2生成tags文件

在源码根目录下执行ctags -R命令来为程序源代码生成标签文件,其-R选项表示递归操作,同时为子目录也生成标签文件,vim利用生成的标签文件,可以进行检索,并在不同的文件、元素之间来回切换。

3指定tags文件位置

可以手动指定tags文件,vim命令行中输入或者修改.vimrc文件 set tags=./tags

这个命令让vim在当前目录里寻找tags文件

tags文件只能查看函数,类或变量的定义,而没有被调用信息,如果要知道一个函数在什么地方被使用,需要使用cscope工具;添加的tags最好是source code的索引,对于include头文件索引没有效果。

ii.             aboutcscope

1安装cscope

sudo apt-get install cscope

2知识点

1) 生成索引文件cscope -Rbq则生成cscope.in.outcscope.out cscope.po.out三个文件

在命令行执行:cs add path/cscope.out添加索引文件的位置,或者加到.vimrc文件中

2) cscope的用法 :cs find {querytype} {name}

{querytype} 为下面的命令字

0 s:查找该C语言符号

1 g:查找定义

2 d:查找本函数调用的函数

3 c:查找调用指定函数的函数

4 t:查找字符串

6 e:查找 egrep 模式

7 f:查找文件

8 i:查找包含指定文件的文件

这些都是命令行的命令,敲起来太慢,可以在.vimrc中定义这些命令的键盘快捷键,例如快捷键<c-\>s(敲入ctrl+\的组合键然后再敲s)组合,即实现查找C语言符号的命令,就定义在下面的第一行,也可以根据自己的习惯,定制自己的快捷键。

nmap <C-\>s :cs find s<C-R>=expand("<cword>")<CR><CR>

nmap <C-\>g :cs find g<C-R>=expand("<cword>")<CR><CR>

nmap <C-\>c :cs find c<C-R>=expand("<cword>")<CR><CR>

nmap <C-\>t :cs find t<C-R>=expand("<cword>")<CR><CR>

nmap <C-\>e :cs find e<C-R>=expand("<cword>")<CR><CR>

nmap <C-\>f :cs find f<C-R>=expand("<cfile>")<CR><CR>

nmap <C-\>i :cs find i^<C-R>=expand("<cfile>")<CR>$<CR>

nmap <C-\>d :cs find d<C-R>=expand("<cword>")<CR><CR>

http://blog.chinaunix.net/uid-21843387-id-121943.html

http://blog.csdn.net/luckywang1103/article/details/44181557