« 2011年7月的文章归档

为VIM阅读PHP生成tags

很多IDE中都提供这样一个功能,在我们看代码过程中,碰到一个不熟悉的函数、类名等,我们能快速的定位到该函数或类名定义的所在。比如Zend Studio中,Ctrl+鼠标点击就可以切换过去。

强大的VIM也提供了这样的功能,分两步进行。

1.安装ctags

ctags一般linux中都安装过了,如果没有安装,你可以到其主页上下载源码,然后编译,当然,如果是ubuntu的话,直接:sudo apt-get install exuberant-ctags

2.为代码生成tags

cd /path/to/framework/library
ctags -f ~/.vim/mytags/framework \
-h ".php" -R \
--exclude="\.svn" \
--totals=yes \
--tag-relative=yes \
--PHP-kinds=+cf \
--regex-PHP='/abstract class ([^ ]*)/\1/c/' \
--regex-PHP='/interface ([^ ]*)/\1/c/' \
--regex-PHP='/(public |static |abstract |protected |private )+function ([^ (]*)/\2/f/'

一般生成的tags文件可以放在程序目录下,也可以统一放在自己指定的地方,这里就是放在~/.vim/mytags/下,tags文件名为framework.
3.VIM设置
tags生成后,我们在阅读代码时就可以指定使用它了
在VIM的normal模式下:

:set tags=~/.vim/mytags/framework

4.当你看到默生的自定义函数或类时,光标定位到其上,”CTRL+]”转到其定义上,“CTRL+T”转回上一个,想在分隔窗口打开使用“CTRL+W ]”。

更多技巧等你发掘,霸气外露啊``

开启VIM的modeline

用VIM编辑文件时,你可以加入模式行(modeline),以方便以后别人用VIM编辑该文件时,使用同样的设置。
做法是在你要使用模式行的文件中头或尾(具体在哪些行可以加入,要看:set modelines=N中N的设置)加入一行代码。
该行代码的语法是这样的:

any-text vim:set {option}={value} ... : any-text

例:

<?php
/*test.php*/
/* vim: set expandtab sw=4 ts=4 sts=4: */
// your code
?>

今天在ubuntu机子中,我发现模式行没起作用,于是我尝试:

:set modeline
:set modelines=5

结果依旧,最后我把设置加到.vimrc中才生效。- -!