Validate PHP syntax in VIM Validate PHP syntax in VIM php php

Validate PHP syntax in VIM


You can execute shell commands in vim. This is the same as calling php -l filename.php from the shell:

:!php -l %

I have this mapped into my ~/.vim/after/ftplugin/php.vim file so that I only have to press F5:

map <F5> :!php -l %<CR>


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

http://vim.wikia.com/wiki/Runtime_syntax_check_for_php