您的位置:首页 > 编程语言

第十六章 通过ctags建立索引,并用其浏览源代码

2015-09-23 15:30 239 查看
ctags *.rb

用模式定位关键字,而不是行号。描述标签文件格式的规格文档明确指出,关键字的地址可以是任意的Ex命令。
ctags不采用绝对行号,而是查找命令定位每一处关键字。

用元数据标记关键字
传统的标签文
4000
件格式只需有制表符分隔的3组字段构成:关键字、文件名以及定位符。

配置Vim使用ctags
告诉Vim标签文件在哪里

生成标签文件
正如我们在用ctags创建代码库的索引所看到的那样,ctags可以在系统命令行中执行。
通过以下命令,我们可在Vim中直接调用ctags:
:!ctags -R

通过使用以下映射项,能为我们节省不少时间
:nnoremap <f5> :!<ctags> -R<CR>

在每次保存文件时自动保存执行ctags
:autocmd BufWritePost * call system(“tags -R")
通过版本控制工具的回调机制自动执行ctags
《Effortless Ctags with Git》一文中,他为我们讲解了如何为post-commit、post-merge以及post-checkout等事件简历回调机制。该方案的优势在于实现了全局回调功能,通过它,你将不必为系统中的每个代码仓库单独进行配置。
http://tbaggery.com/2011/08/08/effortless-ctags-with-git.html

跳到关键词的定义处:
<C-]>,光标将会从当前所在的关键字跳转到它的定义处。
<C-t>命令会充当“后退按钮”的角色。:tnext :first :tlast

总结了在使用标签进行代码浏览时的可用命令     
命令用途
<C-]>跳转到匹配当前光标所在关键字的第一处标签
g<C-]>如果有多处标签可以匹配当前光标所在的关键字,提示用户指定一处进行跳转。如果只有一处匹配,则不会提示,直接进行跳转
:tag {keyword}跳转到匹配{keyword|的多处标签中指定一处进行跳转。如果只有一处匹配,则不会提示,直接进行跳转。
:pop 或 <C-t>反向遍历标签历史
:tag正向遍历标签历史
:tnext跳转到下一处匹配标签
:tprev跳转到上一处匹配标签
:tfirst跳转到第一处匹配的标签
:tlast跳转到最后一处匹配的标签
:tselect提示用户从标签中匹配列表中选择一处进行跳转
浏览Quickfix列表的命令     

命令用途
:cnext跳转到下一项
:cprev跳转到上一项
:cfirst跳转到第一项
:clast跳转到最后一项
:cnfile跳转到下一个文件中的第一项
:cpfile跳转到上一个文件中的最后一项
:cc N跳转到第n项
:copen 打开quickfix
:cclose关闭quickfix窗口
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Vim实用技巧