最近需要写一些php的程序,于是研究了一下如何在vim中对php进行语法检查。 其实原理也是和在vim中调用g++/gcc对源文件进行编译是一样的(详见VIM-一键编译单个源文件),也是调用外部程序,然后将错误输出到vim的quickfix中去,为什么要输出到quickfix中?……如果这个都不知道,恐怕也不是在用vim吧……,呵呵,OK,我们进入正题。
先来做准备工作,由于大部分读者应该实在windows下开发,所以我们主要讲解windows下的部署(但是vim的配置代码在linux下一样可以完美执行)。
首先,你需要去下载一个php在windows下的压缩包,然后解压到任何一个地方,进入目录,你会发现一个php.exe。
OK,把这个目录放到环境标量里去。
第二步,打开你的_vimrc,将如下配置写入并保存。
"检查当前文件代码语法(php){{{
function! CheckSyntax()
if &filetype!="php"
echohl WarningMsg | echo "Fail to check syntax! Please select the right file!" | echohl None
return
endif
if &filetype=="php"
" Check php syntax
setlocal makeprg=\"php\"\ -l\ -n\ -d\ html_errors=off
" Set shellpipe
setlocal shellpipe=>
" Use error format for parsing PHP error output
setlocal errorformat=%m\ in\ %f\ on\ line\ %l
endif
execute "silent make %"
set makeprg=make
execute "normal :"
execute "copen"
endfunction
map :call CheckSyntax()
"}}}
然后我们按下F6就可以执行啦~~
注意
if &filetype!="php" echohl WarningMsg | echo "Fail to check syntax! Please select the right file!" | echohl None return endif
这一段,是规定了必须是.php格式的文件,所以不要拿成错文件来试哦
OK,我们来测试一下,新建一个php文件phpinfo.php,写入如下代码
<?php phpinfo()>>?>
当然,很明显语法是错误的,按下F6,结果如下:
修改为
并保存后,按下F6,结果如下:
好啦,那么在vim中进行php语法检查的功能就到这里啦,希望对大家有所帮助~~