本博之前有写过一篇vim+php.exe检查php语法的文章-在vim中检查php语法格式,这种方式的优点是只依赖php环境本身,但缺点也很明显:检查并不严格,很多错误检查不出来。

所以我们考虑使用另一个语法检查工具-ZendCodeAnalyzer.
博友梧桐之前在博客中咨询该怎么写ZendCodeAnalyzer的errorformat,所以这里放出代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
map <F7> :call CheckPHPSyntax()<CR>
function CheckPHPSyntax()
    let php_check_syntax_cmd='ZendCodeAnalyzer  --disable var-arg-unused'
 
    let exeFile = expand("%:t")
    let &makeprg = php_check_syntax_cmd
    set errorformat=%f(line\ %l):\ %m
    silent make %
    if len(getqflist())>2
        call setqflist(remove(getqflist(),2,-1))
        copen
    else
        cclose
        normal :
        echohl WarningMsg | echo "Check over,No error!" | echohl None
    endif
endf

把ZendCodeAnalyzer放到环境变量中后,在vim中按下F7即可调用进行语法检查了,如下图:

1

由于网站流量的限制,ZendCodeAnalyzer的windows和linux版本就不放出下载了,大家有需要在下面留言即可,我晚上会统一发送。

附:
其实这里还有个遗憾,就是没能做成像pyflakes一样的实时语法检查,之前尝试过实时检查,发现每次启动进程速度还是太慢了,可能需要考虑新的方法,这里如果有博友有好方法,欢迎不吝告知。





原创文章,版权所有。转载请注明:转载自Vimer的程序世界 [ http://www.vimer.cn ]

本文链接地址: http://www.vimer.cn/?p=1931

74 个评论 在 “vim(gvim)配合ZendCodeAnalyzer检查php语法”

  1. 梧桐 说:

    哇哈哈,我果然是沙发王。。感谢博主啦

    [回复]

  2. 梧桐 说:

    博主的这一句
    let php_check_syntax_cmd=$’ZendCodeAnalyzer –disable var-arg-unused’
    $是不是要去掉?

    [回复]

    Dante 回复:

    呃,有用的,是要给makeprg赋值~

    [回复]

    梧桐 回复:

    不好意思,可能是我vim问题..我加了$就报错..去掉就可以用了..

    [回复]

    Dante 回复:

    啊,杯具啊,是我多copy了一个$符号。。。汗死,在手机上没看清。。

    [回复]

    梧桐 回复:

    哈哈

    [回复]

  3. muzuiget 说:

    我也很需要pyflakes那样的实时语法检查,就是扔不掉eclipse的原因。

    [回复]

    Dante 回复:

    嗯,如果有python写的php语法分析库就能完美解决了,不过至今一直没找到。

    [回复]

  4. 明明 说:

    谢谢博主,求windows下的ZendCodeAnalyzer~

    另外问一下,我使用:make命令和:cl命令出现的都是乱码。问了好几天了,都没找到解决方案。有没有什么好的解决方式?谢谢博主~

    [回复]

    Dante 回复:

    :redraw!
    或者ctrl+l
    就可以强制刷新了。
    文件已经发送,请查收~~

    [回复]

  5. alichen 说:

    需要一个 zend code anlyzer

    [回复]

  6. bdancerlc 说:

    我也需要一个zend code anlyzer,不知道是什么版本的,谢谢了..

    [回复]

    Dante 回复:

    邮件已经发送,请查收。

    [回复]

    bdancerlc 回复:

    收到了,嘿嘿,谢谢了!..

    [回复]

  7. east 说:

    需要一个 windows 版本的,谢谢博主。

    [回复]

    Dante 回复:

    已经发送,请查收。

    [回复]

  8. jason7758 说:

    你好,我需要zend code anlyzer,linux版 ,如果方便windows版也请发一下

    [回复]

    Dante 回复:

    邮件已经发送,请查收~~

    [回复]

  9. noohou 说:

    麻烦linux,windows的zend code anlyzer都给个,哪位有的也可以发我,noohou@qq.com,多谢

    [回复]

    Dante 回复:

    已经发送,请查收~~~

    [回复]

    noohou 回复:

    多谢

    [回复]

  10. camel 说:

    请发一份linux的zend analyzer 到mr.jasonzh@gmail.com,谢谢先!

    [回复]

    Dante 回复:

    已发送,请查收~

    [回复]

  11. 大龙 说:

    站长,麻烦发一下zendcodeanalyzer的windows办给我,邮箱是abcdalong@163.com,谢啦!

    [回复]

    Dante 回复:

    已经发送,请查收

    [回复]

    大龙 回复:

    谢谢站长,我已经收到了!

    [回复]

  12. Syndim 说:

    同求zendcodeanalyzer的win版和linux版。。。
    star-yj#163.com
    不胜感谢。

    [回复]

    Dante 回复:

    已经发送,请查收~~~~

    [回复]

  13. zendcodeanalyzer 说:

    急需这个插件 不胜感激啊

    [回复]

    Dante 回复:

    已经发送,请查收~~~~~

    [回复]

  14. 想要一个linux版本的谢谢 说:

    想要一个linux版本的谢谢

    [回复]

    Dante 回复:

    已经发送
    请查收~

    [回复]

  15. xiaowu 说:

    给我一份,谢谢

    [回复]

    Dante 回复:

    已经发送
    请查收

    [回复]

  16. polaris1119 说:

    我也需要,windows和linux的都要。谢谢!

    [回复]

    Dante 回复:

    已发送

    请查收~~~

    [回复]

  17. lzhp 说:

    我也需要一个linux版的,谢谢了~~~

    [回复]

    Dante 回复:

    已发送
    请查收~~~

    [回复]

  18. undo 说:

    我也需要,WIN和LINUX的..谢谢楼主,辛苦了

    [回复]

    Dante 回复:

    已发送
    请查收~~

    [回复]

  19. 七也 说:

    博主,您好,我需要一个zendcodeanalyzer,谢谢

    [回复]

    Dante 回复:

    已发送
    请查收~

    [回复]

  20. 深蓝 说:

    找遍整个网络了也没有可用的下载啊,麻烦站长大人把两个版本的都发给我吧,多谢多谢~~
    rocxdp(at)sina(dot)com

    [回复]

    Dante 回复:

    已经发送
    请查收~~~

    [回复]

  21. Ni许嵩 说:

    今日能够来博主的博客看看,真是我极大的收获!以后一定向博主好好学习VIM的使用!
    今天才知道VIM有多好,就像白粉一样!一用就上瘾了!呵呵
    麻烦博主给俺也发一份吧!
    小弟是PHPer菜鸟,先谢过博主了!

    [回复]

  22. Ni许嵩 说:

    对了,希望您可以把两个平台的都发给俺!谢谢!

    [回复]

    Dante 回复:

    已经发送,请注意查收
    ~

    [回复]

  23. jinhua 说:

    需要zendcodeanalyzer一个,谢谢~~

    [回复]

    Dante 回复:

    已发送
    请查收。

    [回复]

  24. eric 说:

    麻烦给我发一个linux版的。。 谢谢

    [回复]

    Dante 回复:

    已发送,请查收。。

    [回复]

  25. seatle 说:

    麻烦发一份哦,windows和linux的,谢谢LZ
    owner888@163.com

    [回复]

    Dante 回复:

    已发送,请查收。。。

    [回复]

  26. fenge 说:

    麻烦也我发一份吧,windows和linux的,谢谢LZ了,我是php初学者

    [回复]

    fenge 回复:

    我的邮箱xiaoxiongmao.2005@hotmail.com

    [回复]

    Dante 回复:

    已发送,请查收

    [回复]

  27. 小强 说:

    能给我发一份么? windows和linux。谢谢版主了。
    我的邮箱是badboy5457@sohu.com

    [回复]

    Dante 回复:

    已发送,请查收。。。。

    [回复]

    小强 回复:

    十分的感谢

    [回复]

  28. Aric 说:

    能否发一份ZendCodeAnalyzer的windows和linux版本
    3Q
    我的电邮 fhefh#vip.qq.com 请将#=>@

    [回复]

    Dante 回复:

    已发送,
    请查收。

    [回复]

  29. fhefh 说:

    能否发一个ZendCodeAnalyzer 在网上找了好长时间了 都没有 3Q

    [回复]

    Dante 回复:

    已发送,请查收,。。

    [回复]

  30. youanan 说:

    谢谢,正在学习PHP,刚好需要!

    [回复]

  31. andy 说:

    求windows版,网上找不到地址下载。。。。

    [回复]

  32. dongxi8 说:

    lz好东西啊
    给我发一个,谢了

    [回复]

  33. teawon 说:

    同求ZendCodeAnalyzer(windows),网下找不到啊!!

    [回复]

  34. wowo 说:

    linux 下的ZendCodeAnalyzer。。

    [回复]

  35. fredyj 说:

    求发一份ZendCodeAnalyzer的windows和linux版本

    fredyj @ 163.com

    [回复]

    Dante 回复:

    已经发送哦

    [回复]

  36. vimest 说:

    有点javascriptLint的感觉。

    [回复]

  37. aio 说:

    求一份Windows版的,请发到留言Email,谢谢!

    [回复]

  38. fly 说:

    求发一份ZendCodeAnalyzer的windows版本
    如果有实时检测就更好了~

    [回复]

  39. yue 说:

    楼主 求ZendCodeAnalyzer linux版 谢谢了

    [回复]

我要评论

*

*