vim学习笔记-tags用法

1、ctags用法
ctags --list-languages 查看支持语言
ctags --list-kinds查看ctags可以识别的语法元素
ctags --list-maps 默认支持的文件扩展名
ctags -R: 生成tag文件,-R表示也为子目录中的文件生成tags
:set tags=path -- 告诉ctags使用哪个tag文件
:set tags=tags;
:set autochdir 两个一起用,ctags自动寻找tags文件,默认当前路径,其次是父路径,依次向上递归,tags后的冒号是必须有的
:tag xyz -- 跳到xyz的定义处,或者将光标放在xyz上按Ctrl+],返回用Ctrl+t  nCtrl+t 返回跳转 n 次
:stag xyz -- 用分割的窗口显示xyz的定义,或者Ctrl+w ], 如果用Ctrl+w n ],就会打开一个n行高的窗口
:ptag xyz -- 在预览窗口中打开xyz的定义,热键是Ctrl+w }。
:pclose -- 关闭预览窗口。热键是Ctrl+w z。
:pedit abc.h -- 在预览窗口中编辑abc.h
:psearch abc -- 搜索当前文件和当前文件include的文件,显示包含abc的行。
:tag main --可以从打开的文件中跳到main函数处,即使打开的文件中没有main函数(在别的文件中也可以跳过去)

有时一个tag可能有多个匹配,如函数重载,一个函数名就会有多个匹配。 这种情况会先跳转到第一个匹配处。

:[n]tnext或tn -- 下一[n]个匹配。
:[n]tprev或tp -- 上一[n]个匹配。
:tfirst -- 第一个匹配
:tlast -- 最后一个匹配
:tselect tagname -- 打开选择列表

tab键补齐

:tag xyz -- 补齐以xyz开头的tag名,继续按tab键,会显示其他的。
:tag /xyz -- 会用名字中含有xyz的tag名补全。
:tags -- 列出已经跳转到过哪些tag了
:tag /^block 查找以block开头的可能的tag

2、cscope用法

cscope -Rbq: 生成cscope.out文件
:cs add /path/to/cscope.out /your/work/dir
:cs find c func -- 查找func在哪些地方被调用
:cw -- 打开quickfix窗口查看结果

3、gtags用法
Gtags综合了ctags和cscope的功能。 使用Gtags之前,你需要安装GNU Gtags。 然后在工程目录运行 gtags 。

:Gtags funcname 定位到 funcname 的定义处。
:Gtags -r funcname 查询 funcname被引用的地方。
:Gtags -s symbol 定位 symbol 出现的地方。
:Gtags -g string Goto string 出现的地方。 :Gtags -gi string 忽略大小写。
:Gtags -f filename 显示 filename 中的函数列表。 你可以用 :Gtags -f % 显示当前文件。
:Gtags -P pattern 显示路径中包含特定模式的文件。 如 :Gtags -P .h$ 显示所有头文件, :Gtags -P /vm/ 显示vm目录下的文件。
 

你可能感兴趣的:(vim学习笔记-tags用法)