Validate PHP syntax in VIM
Use :make
with the following php specific settings:
:set makeprg=php\ -l\ %:set errorformat=%m\ in\ %f\ on\ line\ %l,%-GErrors\ parsing\ %f,%-G
Your syntax errors will be in the Quickfix window. You can open this buffer with :copen
or :cope
for short. If you only want to open the window only if their are errors use :cwindow
.
You can use :cnext
and :cprev
to move through the quickfix list to jump to the corresponding errors. I suggest Tim Pope's excellent unimpared.vim plugin to make moving through the list as simple as [q
and ]q
.
To simplify the workflow I suggest a mapping like this one:
nnoremap <f5> :update<bar>make<bar>cwindow<cr>
Now you can just hit <f5>
and the buffer will be updated (if necessary), linted, and any errors will appear in the quickfix window.
To make this a bit more robust, add these commands to ~/.vim/after/ftplugin/php.vim
. Example ~/.vim/after/ftplugin/php.vim
setlocal makeprg=php\ -l\ %setlocal errorformat=%m\ in\ %f\ on\ line\ %l,%-GErrors\ parsing\ %f,%-Gnnoremap <buffer> <silent> <f5> :update<bar>sil! make<bar>cwindow<cr>
For more information:
:h quickfix:h makeprg:h errorformat
To check PHP syntax without having to save first you can use:
map :w !php -l