linux ctags php,PHP源码阅读方法 使用VIM + Ctags查看源码

通常在Linux或其他*Nix环境我们都使用VIM作为代码编辑工具,在纯命令终端下,它几乎是无可替代的。它具有非常强大的扩展机制,在文字编辑方面基本上无所不能。

推荐在Linux下编写代码的读者或多或少的试一试ctags。 ctags支持非常多的语言,可以将源代码中的各种符号(如:函数、宏类等信息)抽取出来做上标记并保存到一个文件中,供其他文本编辑工具(VIM,EMACS等)进行检索。它保存的文件格式符合UNIX的哲学(小即是美),使用也比较简洁:

#在PHP源码目录(假定为~/public_html/php-5.3.13)执行:

$ cd ~/public_html/php-5.3.13

$ ctags -R

#小技巧:在当前目录生成的tags文件中使用的是相对路径,

#若改用 ctags -R ~/public_html/ ,可以生成包含完整路径的ctags,就可以随意放到任意文件夹中了。

#在~/.vimrc中添加:

set tags+=~/public_html/php-5.3.13/tags

#或者在vim中运行命令:

:set tags+=~/public_html/php-5.3.13/tags

上面代码会在~/public_html/php-5.3.13目录下生成一个名为tags的文件,这个文件的格式如下:

{tagname}{tagfile}{tagaddress}

1 !_TAG_FILE_FORMAT>--2>--/extended format; --format=1 will not append ;" to lines/

2 !_TAG_FILE_SORTED>--1>--/0=unsorted, 1=sorted, 2=foldcase/

3 !_TAG_PROGRAM_AUTHOR>---Darren Hiebert>-/dhiebert@users.sourceforge.net/

4 !_TAG_PROGRAM_NAME>-Exuberant Ctags>//

5 !_TAG_PROGRAM_URL>--http://ctags.sourceforge.net>---/official site/

6 !_TAG_PROGRAM_VERSION>--5.5.4>--//

7 A>--ext/hash/hash_gost.c>---89;">---d>--file:

8 AA>-ext/gd/libgd/gd.h>--/^>-int AA;$/;">m>--struct:gdImageStruct

9 AA>-ext/hash/hash_gost.c>---101;">--d>--file:

10 AAL_Bx_Ax>--ext/gd/libgd/gd.h>--/^>-int AAL_Bx_Ax;$/;">-m>--struct:gdImageStruct

11 AAL_By_Ay>--ext/gd/libgd/gd.h>--/^>-int AAL_By_Ay;$/;">-m>--struct:gdImageStruct

12 AAL_LAB>ext/gd/libgd/gd.h>--/^>-float AAL_LAB;$/;">-m>--struct:gdImageStruct

它的每行是上面的这样一个格式,第一列是符号名(如上例的AAL_Bx_Ax宏),第二列是该符号的文件位置以及这个符号所在的位置。 VIM可以读取tags文件,当我们在符号上(可以是变量名之类)使用CTRL+]时VIM将尝试从tags文件中检索这个符号。如果找到则根据该符号所在的文件以及该符号的位置打开该文件,并将光标定位到符号定义所在的位置。 这样我们就能快速的寻找到符号的定义。

使用 Ctrl+] 就可以自动跳转至定义,Ctrl+t 可以返回上一次查看位置。这样就可以快速的在代码之间“游动”了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值