发信人: 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 /<pat> :tag /xxx 列出所有包含xxx的tag :tag 转到前一个浏览过的tag处 vi -t xxx 直接定位到xxx的定义处 :tn / :tp 转到下/上一个tag代码处,可以使用:5tn的形式 :tr / :tl 转到首/尾tag代码处 <C-]>, <C-左键> 转到光标所在函数或者变量的定义处 g+左键 (GUI) [注2] <C-T>, <C-右键> 回到跳转前的代码处(适用于任何跳转) g+右键 (GUI) :tags 列出当前tag栈的内容 :ts xxx 列出所有匹配的代码及其所属文件,并提供选择浏览 :sts xxx 列出匹配处提供选择在新窗口中打开文件 :tj xxx 类似 :ts xxx,当只有一个匹配时直接转到代码处 g] 与 :ts xxx 功能相同(tag为光标下的标识符) <C-w> g] 等价于 :sts xxx g <C-]> 等价于 :tj xxx :pt? xxx 提供上述命令(?为j,s)的预览功能,退出窗口 :q! :t?! xxx 当前文件的修改被丢弃转到目标文件中 <C-w> } 在预览窗口中显示当前光标下的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.*] |
|