解决ctags对php的支持

本文介绍如何通过下载并应用CTags-PHP5.patch来解决CTags在处理PHP代码时遇到的问题,具体包括在CTags命令参数中加入正则表达式和直接修改CTags源码文件php.c,从而实现对PHP关键字如abstract, public等的正确识别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

            我的开发大多数是在vim中进行的,所以ctags对我来说就像是一把利器。俗话说的好,公欲善其事,必先利其器。现在设计到了服务器段php的开发,突然发现ctags对php建的tag已经不怎么好用了,究其原因,就是ctags对php的一些关键字的不认识,导致ctags对很多函数都没有建索引,这些关键字分别是abstract,public,private,protected,static。好,下面就来解决这个问题。

             网上搜了很多,好多人都是用正则表达式,在建tag的时候加在ctags的命令参数中,但是我试了好多始终有问题,这让我非常头痛。晚上闲来无事,看看还有没有其他什么解决办法,突然发现有人解决办法是网ctags源码中打补丁,下面来详细讲解一下。

            1. 下载ctags源码包。

            2. 下载ctags-php5.patch      

                 wget http://svn.bitflux.ch/repos/public/misc/ctags-php5.patch

            3. 解压ctags源码包后,对源码包里的php.c文件打补丁。   #patch php.c ctags-php5.patch

                 这样,ctags对php的支持就比较好了。其事万变不离其中,看一下这个补丁文件,无非也就是加入了对上面说的几个关键字的匹配。

            4. 安装ctags。   # ./configure --prefix=/opt/ctags  && make && make install 

            5.替换原来的ctags。  #cp /opt/ctags/bin/ctags  /usr/bin

            试一下吧,原来建不了得tag现在都搞定了,一切就是那么轻松。


aggregate_properties_by_list - 选择动态类对象的属性集合。 aggregate_proprties_by_regexp - 选择阶级属性集合到一个对象时使用正则表达式。 aggregation_info - 此函数是该函数的别名 aggregate_info()。 AMQPConnection::__construct - AMQPConnection创造的一个实例。 AMQPConnection::connect - 建立一个连接与AMQP broker。 AMQPConnection::disconnect - 关闭连接与AMQP broker。 AMQPConnection::isConnected - 确定AMQPConnection对象连接到 broker。 AMQPConnection::reconnect - 关闭任何打开连接,创建一个新的连接AMQP broker。 AMQPConnection::seHosr - 该方法将用来连接的主机的AMQP broker。 AMQPConnection::setLogin - 该方法将登陆字符串用来连接到AMQP broker。 AMQPConnection::serPassword - 这个方法会将密码设置字符串用来连接到AMQP broker。 AMQPConnection::setPort - 该方法将端口用来连接到AMQP broker。 AMQPConnection::setVhost - 设置虚拟主机,连接到AMQP broker。 AMQPexchange::__construct - AMQPexchange创造一个实例. AMQPexchange::bind - 绑定目录路径 AMQPexchange::declare - 声明一个新的外连broker。 AMQPecchange::delete - 删除交换broker。 AMQPexchange::publish - 发布信息交换。 AMQPqueue::__construct - 创建一个AMQPqueue实例化对象。 AMQPqueue::ack - 接收一个消息。 AMQPqueue::bind - 绑定一个元素给指定的键值。 AMQPqueue::cancel - 取消一个绑定元素。 AMQPqueue::consume - 取消目录。 AMQPqueue::declare - 声明一个新的元素broker。 AMQPqueue::delete - 删除一个元素和它的值。 AMQPqueue::get - 返回元素信息。 AMQPqueue::purge - 清除内存数据。 ANQPqueue::unbind - 切断一个交换关键值。 apache_child_terminate - 在本次请求结束后终止 apache 进程。 apache_get_modules - Get 一个目录载入 apache 模块。 apache_getenv - Get接入apache指定的环境变量。 apache_lookup_uri - 对指定的URI执行部分请求并返回所有有关信息。 apache_note - 取得或设置apache请求记录。 apache_request_headers - 读取全部HTTP 请求信息。 apache_reset_timeout - 重置apache写入时间。 apache_response_headers - 读取全部HTTP 返回信息。 apacge_setenv - 设置apache环境变量值。 apc_add - 缓存一个变量到数据存储。 apc_bin_dump - Get 一个二进制dump指定文件和变量名称。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值