Chinaunix首页 | 论坛 | 博客
  • 博客访问: 534635
  • 博文数量: 260
  • 博客积分: 10435
  • 博客等级: 上将
  • 技术积分: 1939
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 14:50
文章分类

全部博文(260)

文章存档

2011年(22)

2010年(209)

2009年(29)

我的朋友

分类: LINUX

2011-05-18 21:09:34

使用ctags

在相应的源码目录运行ctags -R产生相应的tags文件

cd ~/www/website

ctags -R *

这时会在~/www/website目录下生成一个tags文件

现在我们进入VIM,执行下面的命令:

:cd ~/www/website       "切换当前目录为~/www/website
:set tags=tags        "设置tags选项为当前目录下的tags文件

现在,我们设置好了tags选项,接下来我们使用它,我们先来查找一个名叫make_html的方法:

:tag make_html

如果make_html方法的定义只存在一个文件中你会看到VIM打开了~/www/my_function.php文件,并把光标定位到make_html方法所在行上。

如果make_html方法的定义存在多个文件中,会提示:

找到 tag:1 / 14 或更多

这时我们可以列出保护这个方法的所有文件

:tselect        "显示列表

这时会列出所有文件,让我们选择一个文件打开

# pri kind tag                文件
> 1 F C f         make_html         function/my_function.php
   2 F     f         make_html         xxx/xxx.php
键入数字和回车(empty cacels) :

根据提示输入我们想查看的文件对应的序号然后回车就可以了。

:tn       "显示后一个tag到的PHP文件
:tp       "显示前一个tag到的PHP文件
:tags   "显示标签栈

我们还可以把鼠标停留在想要跳转的 类 函数 变量 上面,然后按 ctrl + ] ,回到原来位置是 ctrl + t

Tag文件格式

Tag文件遵循一定的格式,缺省是如下格式:

{tagname} {TAB} {tagfile} {TAB} {tagaddress} {term} {field} ..

{tagname}      标识符名字,例如函数名、类名、结构名、宏等。不能包含制表符。

{tagfile}  包含 {tagname} 的文件。它不能包含制表符。

{tagaddress}   可以定位到 {tagname}光标位置的 Ex 命令。

{term}           设为“;"”。这是为了兼容Vi编辑器,使Vi忽略后面的{field}字段。

{field} ..  此字段可选,通常用于表示此{tagname}的类型是函数、类、宏或是其它。

在{tagname}、{tagfile}和{tagaddress}之间,采用制表符(TAB符,即C语言中的”\t”)分隔,也就是说{tagname}、{tagfile}中不能包含制表符。

Tag文件的开头可以包含以“!_TAG_”开头的行,用来在tag文件中加入其它信息。VIM能够识别两种这样的标记,经常用到的是“_TAG_FILE_SORTED”标记,例如:

!_TAG_FILE_SORTED1{anything}

上面这个标记说明tag文件是经过排序的,并且排序时区分了大小写,对排序的tag,VIM会使用二分法来进行查找,大大加快了查找速度;如果值为0,则表示tag文件未经排序;如果值为2,则表示tag文件是忽略大小写排序的。



阅读(1456) | 评论(0) | 转发(0) |
0

上一篇:pyc pyo 文件

下一篇:python switch

给主人留下些什么吧!~~