虎泰克博客

sublime Text 2支持格式化PHP-安装PhpBeautifier插件过程经历


这两天一直纠结两款编辑器——eclipse和sublime Text。eclipse的php插件不支

这两天一直纠结两款编辑器——eclipse和sublime Text。

eclipse的php插件不支持块注释收缩状态下的格式化

eclipse的php插件功能的格式化代码功能如果鸡肋,无法配置PHP格式化模板。而且不支持代码注释在收缩的情况下的格式化功能,这是本人花了几个小时的尝试下,无意间的收获经验。一开始我以为是eclipse的版本问题,换了好几个版本,同时也更换php插件,都无法解决,因为我是格式化我本来项目中的一个文件,而那个文件就有大量的块注释。一按快捷键ctrl+shift+F就会出现假死现象,花了几个小时都无法解决问题,后来尝试写一个简单的PHP代码,却可以格式化代码了,最终将注释块全部展开,这时也可以格式化PHP代码了。o~上帝,然而无法同java一样,PHP插件中无法配置PHP格式化模板,这让我不太满意。当然,这些都不是大问题,问题是,前几天我认识了sublime text 这款软件,功能非常强大。但是....

sublime text的缺点

用了sublime text,总体感觉很棒。只是以下几个内容不太满足要求:

虎gxs泰fftoo克dbz新nk闻lui网xby版权所有,请勿未授权转载!!!

1、不支持outline大纲

虎raeum泰egdtu克rugbh新sxhy_闻c网rvy版权所有,请勿未授权转载!!!

2、函数追踪功能效果不好。而且操作不习惯。我安装的是CTags,配置快捷键,按两下F1进行函数追踪,按一下F1,再按一下F2退回。如果能Ctrl+鼠标左键来实现这个功能的话,将会习惯很多。也比较方便。

虎dhqkj泰xktj克yo新xc闻kl网fha版权所有,请勿未授权转载!!!

其实PHP格式化功能,可以通过edit->line->Reindent 重缩进功能进行处理。效果也挺不错。但无意在网上看到了这样一款插件:PhpBeautifier ,经过几个小时的研究,最终在sublime text 下成功通过PhpBeautifier插件实现PHP代码格式,效果不错,在此记录一下昨晚解决事情的经历并分享实现PhpBeautifier格式化PHP代码的方法。

修正上面第二点:函数追踪功能 2012-11-11光棍节22:28记录

——sublime text可以实现ctrl+鼠标左键来进行函数追踪

虎h泰p克tzp新i闻apiej网_版权所有,请勿未授权转载!!!

可能是我的ctags.exe版本原故,导致无法通过ctrl+鼠标左键来进行函数追踪效果。今天在“CTags的官方网站”下载了最新版的ctags.exe,放到我的sublime text目录下。注意,要在环境变量增加你的ctags.exe的路径。比如我的路径为:C:\Sublime Text 2.0\ctags.exe,那么我在环境变量path中增加:C:\Sublime Text 2.0,如下图所示:

虎rdk泰cvy克l新lpb闻kmfq网oyu版权所有,请勿未授权转载!!!


虎jh泰xz_qq克p新j闻yfv网jyww版权所有,请勿未授权转载!!!

重建索引后,尽然可以使用键盘按键与鼠标结合来进行函数追踪功能了,但是要按ctrl+shift后,在按鼠标左键进行函数追踪。可我想直接按ctrl与鼠标左键。通过进一步摸索,发现增加了mouse选项,如下图所示:

虎fwrjx泰glpyc克lva新jah闻epjf网ihl版权所有,请勿未授权转载!!!


虎t泰fm克gbzs新za闻rv网loqg版权所有,请勿未授权转载!!!

于是在Mouse Bindings-user中复制Mouse Bindings-Default的代码,并去掉shift,实现了ctrl+鼠标左键进行函数追踪功能。同时,定位到目标文件后,按下ctrl+鼠标右键会返回到原文件中。非常方便。

虎ocxpn泰eh克_t_h新yznl闻xzmz网kvmva版权所有,请勿未授权转载!!!

2012-11-12 记:似乎不是ctag.exe版本问题。在公司电脑中,ctags.exe仍是以前版本。但是Preferences->Package Settings->CTags->也出现了Mouse Bindings -Default和Mouse Bindings-User这两项。奇怪,为什么以前没有这两项呢?还是我以前没注意?

虎s泰hq克k新ds闻_网oun版权所有,请勿未授权转载!!!

 

实现sublime text 支持 PhpBeautifier经历

一、失败

看到PhpBeautifier的介绍,心动不已,立即在sublime text中进行安装,安装后无法使用,根据习惯检查一下 Preferences->package setting中插件内容,并未出现PhpBeautifier;输入ctrl+shift+p,输入format ,显示 format php,执行,无任何效果。为什么会在sublime text中安装的插件不成功?为这问题折腾了一个多小时,仍未解决。

二、失败

百度,无任何资料。google,找到了这样一篇资料:

虎kwhu泰pli克elz_g新oba闻z_w网zimyn版权所有,请勿未授权转载!!!


在 Sublime Text 裡的格式化 PHP 代碼 

由於某些原因,需要處理一堆比較舊的PHP代碼,
而且編程風格也不統一,所以需要先統一後再處理會比較方便.
不過於由 Pear 的東西有點參差不齊.所以整合到 Editor 內的過程也不太順利.
來記錄一下.

 # 更新已有的 Pear 套件
 # 之後安裝 PHP_Beautifier
 # 再列出使用方法
 cd /Applications/XAMPP/xamppfiles/bin
 sudo ./pear update-channels
 sudo ./pear upgrade-all
 sudo ./pear install --alldeps PHP_Beautifier-0.1.15
 ./php_beautifier --help
  
 # 修正出現 Cannot redeclare class Config 錯誤
 # 切進 PHP_Beautifier 的 Filter 目錄
 cd /Applications/XAMPP/xamppfiles/lib/php/pear/PHP/Beautifier/Filter
  
 # 打開下面兩個檔案
 - Pear.filter.php
 - phpBB.filter.php
  
 # 注解掉下句這句
 require_once ('PEAR/Config.php');
  
 # 安裝 Sublime Text 2 的 PhpBeautifier 套件
 cd ~/Library/Application\ Support/Sublime\ Text\ 2/Packages/
 git clone https://github.com/SublimeText/PhpBeautifier.git PhpBeautifier
 cd PhpBeautifier/
 vim php_beautifier.py
  
     indent = "-t"
     cmd = "/Applications/XAMPP/xamppfiles/bin/php_beautifier"
  
 # 最後在需要美化/格式化的代碼編輯界面裡就可以格式化了
 Open File > Command+Shift+P > Format PHP > Enter

这如同在我绝望 中给了我动力。按上面要求更改插件PhpBeautifier目录下的php_beautifier.py,测试失败。又折腾了好长时间。都无法格式化PHP代码。

虎chn泰dllka克wrr新tmfbf闻ryyg网vhb版权所有,请勿未授权转载!!!


三、失败

继续google,没找到这方面相关资料。已经晚上11点了,从8点多开始,都搞了快3个小时。绝望、崩溃、泪流满面....

四、phpCodeBeautifier批量php程序代码美化工具

终于又让希望恢复了点,找到了上面这款工具——phpCB.exe,根据参数来对PHP文件进行格式化。

虎gisl泰l克h新fquk闻mlef网ev版权所有,请勿未授权转载!!!

进行测试,可以对指定目录下的PHP文件格式化,效果不错。缺点是需要在命令行下使用非常长的命令参数来美化程序,一次只能美化一个PHP文件。

虎uh泰pa克_anm新qdy闻gix网r版权所有,请勿未授权转载!!!

即使如此,我又把目标放到sublime text上,我感觉,还是可以实现的,是不是我在哪地方有了疏漏。

五、重大发现

我在次转向上面那篇文章。由于着急,只顾着修改php_beautifier.py的文件,而忽视了一个重要内容。安装perl!在sublime text 中安装PhpBeautifier插件的确需要安装perl,请参考:

虎qjkm泰fjfn克tnyv新zdjd闻bkf网kcuxz版权所有,请勿未授权转载!!!

https://github.com/SublimeText/PhpBeautifier#readme

虎xsfp泰pwi克k新idu_w闻f网xu_版权所有,请勿未授权转载!!!

相关内容如下:

虎tmej泰eu克i新g闻d_dz网zmkl版权所有,请勿未授权转载!!!


Installation
Install php-pear and php-cli with your package manager :

•php-pear & php5-cli with Debian
•php-pear & php with Archlinux
Install php beautifier from pear channel : sudo pear install --alldeps channel://pear.php.net/php_beautifier-0.1.15

Clone or download the files and copy them to your Packages folder. You can access it via Preferences -> Browse Packages in sublime text

六、失败

安装perl这一问题,也是困难重重。不是安装 ActivePerl for Windows 的版本。网上一些安装办法现在也无法适用。具体安装请看下面链接中的文章。

虎aie泰dj克ixvtt新okn闻fx网ouh版权所有,请勿未授权转载!!!

安装参考:http://wangye.org/blog/archives/266/

虎uagur泰xka克v_新tiwr闻_网xhmo版权所有,请勿未授权转载!!!

昨晚也不管什么目录配置了,一路回车,安装OK——这样安装的是在默认目录下,我的目录为 d:\php\php5,所以今天在虚拟机重现安装时,我想便于管理,我想安装到d:\php的perl目录下。但是在配置那个菜单,选择1,配置基本目录时,确发现问题:

虎bteg泰qwoy克rvdj新twqh_闻wc网tvfw_版权所有,请勿未授权转载!!!

在cmd命令中输入:

虎u泰dsqwl克dr新fj_闻tw网akhcq版权所有,请勿未授权转载!!!

d:\php\php5> php go-pear.phar

虎j泰fp克oda新k闻ykz网fipcf版权所有,请勿未授权转载!!!

出现:

虎h泰nzuva克g新pn闻mfgb网kpfqb版权所有,请勿未授权转载!!!

Are you installing a system-wide PEAR or a local copy?
(system|local) [system] : 

虎hmzfs泰m克crt新auzk闻j网hszj版权所有,请勿未授权转载!!!

直接回车,出现以下菜单:

虎xbt泰spl克ekc新xo闻evkg网o版权所有,请勿未授权转载!!!


虎djb泰fn克mfks新pn闻cnld网wiarh版权所有,请勿未授权转载!!!

如果选择1,更改目录,则会出现错误。错误如下所示:

虎xxc泰hyq克vo_新jwfp闻oyrju网rovtt版权所有,请勿未授权转载!!!


虎sfcl泰fbeb克ihei新ji闻gd网gwlk_版权所有,请勿未授权转载!!!

只有重新输入命令:

虎o泰j克pr新_ogqi闻bw网fstm版权所有,请勿未授权转载!!!

d:\php\php5> php go-pear.phar

虎sd泰j克ixw新dl闻illh网zche版权所有,请勿未授权转载!!!


虎ma泰qv_vw克r新kd闻t网kswf版权所有,请勿未授权转载!!!

出现:

虎r_泰rcm克fw新mcz_闻wrb网eo版权所有,请勿未授权转载!!!

Are you installing a system-wide PEAR or a local copy?
(system|local) [system] : 

虎onp泰s克koyt新xgbrd闻gt网h版权所有,请勿未授权转载!!!

回车后出现:

虎eyjxf泰dur_s克timt新hw闻gsm_e网mdd版权所有,请勿未授权转载!!!

1-12,'all' or Enter to continue:时,直接回车安装到默认目录,或者输入“all”来配置目录

虎rux泰dblij克rbk新r闻y网w版权所有,请勿未授权转载!!!

安装perl成功后,要在d:\php\php5 目录下找到 PEAR_ENV.reg文件,执行导入即可。

虎m泰gci克kud新n闻pj网xzp版权所有,请勿未授权转载!!!

收藏1:http://www.cnblogs.com/heiing/archive/2011/12/07/2279405.html

虎pcif泰cmqgm克ng新iymmu闻kxkc网xuer版权所有,请勿未授权转载!!!

收藏2:http://www.cnblogs.com/heiing/archive/2012/09/07/2674807.html

解决sublime text使用PhpBeautifier插件的问题

终于接近尾声了,perl安装成功。现在安装PHP_Beautifier,即然上面是通过perl安装的。那我在这也通过perl安装吧。

虎lnf泰dj克h新mfkuv闻hpb_网ebs版权所有,请勿未授权转载!!!

根据http://pear.php.net/package/PHP_Beautifier/download 上面提供的安装方法,在命令中输入:

虎oqys泰fi克x_g新stv闻uzpw_网epmt版权所有,请勿未授权转载!!!


pear install PHP_Beautifier-0.1.15

安装失败。通过上面文章中介绍的命令:pear install --alldeps PHP_Beautifier-0.1.15,安装失败。如下图所示:

虎tndx泰h克zvgr新cxysr闻hzaj网zu_yf版权所有,请勿未授权转载!!!


虎_gwmm泰p克ojfi_新m闻cagtf网dwnq版权所有,请勿未授权转载!!!


虎feka泰c克a新m闻ih网epq版权所有,请勿未授权转载!!!

这中间又google,找不到任何有价值的资料。没办法,只有自己研究一下了。根据错误,找到文件,发现错误的一行有个fsockopen函数,如下图所示:

虎ad泰bbjz克gnt新c闻kfgr网nnwo版权所有,请勿未授权转载!!!


虎zobqv泰oxajg克sznx新w_di闻qojan网scq版权所有,请勿未授权转载!!!

直觉告诉我,也许是我的PHP环境限制了该函数。找到php.ini,找到:disable_functions = escapeshellcmd,escapeshellarg,fsockopen ,果然如此,去掉fsockopen,重启apache,通过官网提供的命令,安装成功。

虎yu泰smck克dsqr新kplu闻fzeop网koh版权所有,请勿未授权转载!!!

安装sublime text的PhpBeautifier插件

虎qjy泰sj克c新fg闻tq网ms版权所有,请勿未授权转载!!!

通过sublime text的package控制器直接安装 或者在https://github.com/SublimeText/PhpBeautifier 下载PhpBeautifier,解压到sublime text/data/package目录下

虎e泰qjtf克ubgeh新p闻_gr_i网v版权所有,请勿未授权转载!!!

下面以我安装的路径d:\php\php5为例

虎lrt泰xvg克dgvt新n闻adw网_faxf版权所有,请勿未授权转载!!!


# 修正出現 Cannot redeclare class Config 錯誤
 # 切進 PHP_Beautifier 的 Filter 目錄
 cd /Applications/XAMPP/xamppfiles/lib/php/pear/PHP/Beautifier/Filter
  
 # 打開下面兩個檔案
 - Pear.filter.php
 - phpBB.filter.php
  
 # 注解掉下句這句
 require_once ('PEAR/Config.php');

这个文件路径是在:d:\php\php5/pear/PHP/Beautifier/Filter 目录,根据上面要求修改

虎upy泰mq_yt克hu新mdpbu闻iwuve网uqii版权所有,请勿未授权转载!!!


虎olhqj泰xu克e新c闻_jy网oidg版权所有,请勿未授权转载!!!

修改php_beautifier.py文件也费了一点时间,主要是下面这句

虎qdwp_泰e克bch_新jks闻c网pj版权所有,请勿未授权转载!!!


cmd = "/Applications/XAMPP/xamppfiles/bin/php_beautifier"

浪费一些时间后,静心研究这个目录。根据这个目录的规律,应该是在我的d:\php\php5这个目录下。所以我改的内容如下:

虎cpxoa泰xne克_jjso新fiq闻mmd网un版权所有,请勿未授权转载!!!


虎zupcv泰saf克oxu新rz闻o网hjzs版权所有,请勿未授权转载!!!


cmd = 'D:\\php\\PHP5\\php_beautifier'

但是仍无法格式化PHP文件。

虎a泰mr克qcm新qx闻mcpv网yvxzn版权所有,请勿未授权转载!!!


虎gxfar泰pui克udwl新s闻pn网h版权所有,请勿未授权转载!!!

查看一下D:\php\php5这个目录下的php_beautifier是什么东东,进去看了才知道,原来是个批处理文件:php_beautifier.bat。于是我将内容改为:

虎vrkex泰dwu克wpke新ag闻g网xf版权所有,请勿未授权转载!!!


cmd = 'D:\\php\\PHP5\\php_beautifier.bat'

奇迹出现了。终于可以通过phpbeautifier插件集成到sublime text中用来格式化PHP代码。

资源下载

本资源包括

虎h泰a克gqatk新gsh闻ukez_网jfy版权所有,请勿未授权转载!!!

1、go-pear.phar

虎l泰_khpz克bm新ydyki闻cdfw网uoa版权所有,请勿未授权转载!!!

2、sublime text 2插件

虎lgz泰ja克rh新oj闻f网uqw版权所有,请勿未授权转载!!!

3、命令行格式化工具及实例

虎js泰o克zegs新vedrq闻dkhz网vf_版权所有,请勿未授权转载!!!

下载地址:http://download.csdn.net/detail/zm2714/4652014

总结

早就听说过perl的大名,但是从未接触过并学习perl的相关知识。这次由于将phpbeautifier插件集成到sublime text中,对perl也有了进一步了解。对于PHP开发人员,了解、掌握并熟练运用perl的模块解决问题,也是非常有必要的。对于我本人,掌握php、python、我想还需要掌握perl了。我将简称为3P吧。

虎dt泰dkym克z新qnjv闻edh网xumn版权所有,请勿未授权转载!!!

本篇内容可能有点疏漏,由于是昨晚实践的结果,今天表述上可能有些偏误。我想在以后看此文时,站在用户角度再来完善本篇内容。本人博客每篇内容都不是完成后就是那个样子,在回头看时,对于那些缺陷、或者有更好的解决方案、更好的描述或表达时,我都会时时更新。一起进步吧~

虎kq泰utufn克hclde新x闻mxlsz网rk版权所有,请勿未授权转载!!!

转自http://blog.csdn.net/zm2714/article/details/8076077



Δήλωση: όλα τα άρθρα / τα σχέδια που αναδημοσιεύονται στον δικτυακό τόπο έχουν ως σκοπό τη διαβίβαση περισσότερων πληροφοριών και τη διευκόλυνση της συζήτησης, πράγμα που δεν σημαίνει ότι ο δικτυακός τόπος, ο οικοδεσπότης και ο διοργανωτής συμφωνούν με τις απόψεις τους ή επιβεβαιώνουν τη γνησιότητα του περιεχομένου τους. Τα περιεχόμενα των άρθρων είναι μόνο για αναφορά. Εάν παραβιαστούν τα δικαιώματα του αρχικού συγγραφέα, επικοινωνήστε με τον διαχειριστή του δικτυακού τόπου.

Υπόγραψε στο σχόλιο

Λίστα σχολίων

    Δεν υπάρχουν δεδομένα