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
- vim下用ctags+cscope查找切换
- linux系统下用vim+ctags+cscope查看源码
- ubuntu下如何使用vim cscope ctags
- 使用Vim + Cscope/Ctags|Vim,Cscope,Ctags
- Vim + Cscope/Ctags
- VIM + CTags/CScope
- Vim + Cscope/Ctags
- vim+ctags+taglist+cscope
- VIM+ctags+cscope用法
- cscope+vim+ctags
- vim + ctags + cscope+taglist
- vi/Vim + Cscope/Ctags
- vim + ctags + cscope
- Vim+Ctags+Cscope配置
- 使用 VIM+Ctags+Cscope
- vi/Vim + Cscope/Ctags
- VIM+ctags+cscope用法
- vim + ctags + cscope
- C 中的malloc/free 与C++中new/delete的区别
- TF随笔-10
- Codeforces #245 (Div. 2)C. Xor-tree(DFS&&贪心
- 关于Cesium中的常用坐标系及说明
- Spring的事务
- vim下用ctags+cscope查找切换
- Spring(12)——BeanFactoryPostProcessor
- 搜索
- Log4j日志组件
- 支持向量机通俗导论(理解SVM的三层境界)
- 数组切分
- KVM — 使用 libvirt 工具栈创建管理虚拟机实例
- 《Neural Networks and Deep Learning》codes' note
- ApplicationContext和BeanFactory的关系