Ctags with Vim

来源:百度文库 编辑:神马文学网 时间:2024/04/28 02:06:30
发信人: neman (行胜于言), 信区: VIM
标  题: Ctags with Vim
发信站: BBS 水木清华站 (Mon May 24 08:42:57 2004), 站内
usage:     $ctags [-R] inc_dir/*.h  include_dir/*.hpp src_dir/*.c
example:   $ ctags -R `find . -name "*.c"`  `find . -name "*.h"`
su; cd /usr/include; ctags --c-types=+p+x -sort -R
生成非常完整,巨大而有序的tags
各用户在 ~/.vimrc中添加set tags= ./tags, tags, /usr/include/tags即可使用
[注1]+p开关会跳到变量声明的地方而不是它的实现,所以还是采用缺省值,
不要--c-types这个选项,或者只要+x(推荐),其它无所谓。
还有/usr/include并不是/usr/src/linux/include的一个符号链接,
所以如果是看内核中一些变量的定义的话应该到/usr/src/linux上面用ctags
ctags浏览代码 (有的命令说明可能不准确)
:set tags=/Dir/tags     设置需要的tags文件,
可以多个:set tags=/dir1/tags, /dir2/tags
:tag xxx                转到满足查找代码的定义处,简写为 :ta xxx
:tag /^xxx              转到以xxx为起始的tag处
other find tags :stag/ptag/ts/tj/pts/ptj /
:tag /xxx               列出所有包含xxx的tag
:tag                    转到前一个浏览过的tag处
vi -t xxx               直接定位到xxx的定义处
:tn   /  :tp            转到下/上一个tag代码处,可以使用:5tn的形式
:tr   /  :tl            转到首/尾tag代码处
,          转到光标所在函数或者变量的定义处 g+左键 (GUI) [注2]
,          回到跳转前的代码处(适用于任何跳转) g+右键 (GUI)
:tags                   列出当前tag栈的内容
:ts xxx                 列出所有匹配的代码及其所属文件,并提供选择浏览
:sts xxx                列出匹配处提供选择在新窗口中打开文件
:tj xxx                 类似 :ts xxx,当只有一个匹配时直接转到代码处
g]                      与 :ts xxx 功能相同(tag为光标下的标识符)
g]                等价于 :sts xxx
g                  等价于 :tj xxx
:pt? xxx                提供上述命令(?为j,s)的预览功能,退出窗口 :q!
:t?! xxx                当前文件的修改被丢弃转到目标文件中
}                 在预览窗口中显示当前光标下的tag
:ptl / ptf / ptn /ptp   类似于 tl,tf,tn,tp
:che                    察看没有找到的头文件(checkpath)
makeprg :set makeprg=gcc\ yourfile.c 为在线编译设置
:make                   在线编译
:cn  /  :cN             移动到编译的 下/上 一个error处
:stag xxx               查找xxx的声明处并在新窗口中打开
:ta {ident}             跳转到标识符定义处
gd                      跳转到局部标识符定义处
[注2] Ctrl-]碰巧是telnet的终端符,如果远程编辑文件可能会遇到一些问题,
请参考在线帮助:h ^]。多数telnet都允许使用命令telnet -E hostname来打开
或关闭该脱字符,或者用telnet -e escape hostname来指定另外一个脱字符
来代替^],请man telnet参看-E -e的帮助。
--
祝所有我关心的人 幸福 快乐
祝所有关心我的人 快乐 幸福
当回首往事时,后悔没有去做的事总比后悔做了的事情多
※ 来源:·BBS 水木清华站 smth.org·[FROM: 166.111.68.*]