Ctags+VI的使用方法

 
Vi 大家都很熟悉,某些情况下它是我们在 Linux 下唯一可用的文本编辑器。其实我们平时所指的 VI 其实是 VIM ViImproved VI 增强版)。有人常常拿 VIM emacs 比较, VIM 尽管不象 emacs 那样有那么多的功能,但是比 emacs 更方便、好用。 VIM 简单易用,只要看看 VIM 自带的 vitutor ,大约只要 20 分钟就能掌握 VIM 的用法。对于 Linux 下的 C/C++ 的程序员,使用 VIM+Ctags 的组合来写程序也许是最佳的选择。 ^_^
VI 的使用方法这里就不罗嗦了,本文假设大家已花了 20 分钟学习过了 vitutor ^_^
本节我们主要讲一下 Ctags 这个程序。尽管 ctags 也可以支持其它编辑器,但是它正式支持的只有 VIM 。并且 VIM 中已经默认安装了 Ctags ,它可以帮助程序员很容易地浏览源代码。
熟练的使用 ctags 仅需记住下面七条命令:(很简单吧,呵呵)
1
$ ctags –R * ($ Linux 系统 Shell 提示符 )
2. $ vi –t tag (
请把 tag 替换为您欲查找的变量或函数名 )
3
ts (ts 助记字: tags list, “:” 开头的命令为 VI 中命令行模式命令 )
4
tp (tp 助记字: tags 此命令不常用,可以不用记 à preview)—
此命令不常用,可以不用记 à 5 tn (tn 助记字: tags next) —
6
Ctrl + ]
7
Ctrl + T
下面我们逐条的解释上面的命令:
“$ ctags –R*”
“-R” 表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。 “*” 表示所有文件。这条命令会在当前目录下产生一个 “tags” 文件,当用户在当前目录中运行 vi 时,会自动载入此 tags 文件。 Tags 文件中包括这些对象的列表:
#define 定义的宏
枚举型变量的值
函数的定义、原型和声明
名字空间( namespace
类型定义( typedefs
变量(包括定义和声明)
类( class )、结构( struct )、枚举类型( enum )和联合( union
类、结构和联合中成员变量或函数
VIM
用这个 “tags” 文件来定位上面这些做了标记的对象。
剩下的命令就是定位这些对象的方法:
“$ vi –t tag”
:在运行 vim 的时候加上 “-t” 参数,例如:
[/usr/src]$ vim -t main
这个命令将打开定义 “main” (变量或函数或其它)的文件,并把光标定位到这一行。如果这个变量或函数有多处定义,在 VI 命令行模式 ts” 命令就能列出一个列表供用户选择。 tp” 为上一个 tag 标记文件, tn” 为下一个 tag 标记文件。当然,若当前 tags 文件中用户所查找的变量或函数名只有一个, “:tp,:tn” 命令不可用。 :(
最方便的方法是把光标移到变量名或函数名上,然后按下 “Ctrl+]” ,这样就能直接跳到这个变量或函数定义的源文件中,并把光标定位到这一行。用 “Ctrl+t” 可以退回原来的地方。即使用户使用了 N “Ctrl+]” 查找了 N 个变量,按 N “Ctrl+t” 也能回到最初打开的文件,它会按原路返回 ^_^
注意:运行 vim 的时候,必须在 “tags” 文件所在的目录下运行。否则,运行 vim 的时候还要用 “:settags=” 命令设定 “tags” 文件的路径,这样 vim 才能找到 “tags” 文件。在完成编码时,可以手工删掉 tags 文件(帚把不到,灰尘不会自己跑掉 ^_^ )。
注:另外,在 windows 下,有 gvim 可以使用。而且,也可以使用 ctags 。这个 ctags 可以从其它的软件包的目录里边 copy 出来。比如 ultraedit 就带了一个 ctags 程序。你直接将其 copy gvim 的目录下的 vim 目录下就可以了
 
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值