天天看点

vim下用ctags+cscope查找切换

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