Это старый вопрос, но я думаю, что должен поделиться этим. Вот мой рецепт, работает довольно хорошо:
let autocompiled_filetypes = [
\ 'php' ] " 'ft2', 'ft3', 'etc'
au BufWritePost * call feedkeys("\<Esc>")
\ | if index(autocompiled_filetypes, &ft) >= 0 |
\ | silent! make % | cw | call feedkeys("\<Enter>")
\ | endif