How can I tell vim to compile a document on save?
You can do that with an autocommand. I don't have one that loads automatically, but if I know I'm going to be going through the edit-compile-edit cycle for a while with one file, I'll execute something like this at the Vim command line:
:au BufWritePost * make
You can replace make
with whatever build or run command is appropriate.
@garyjohn 's answer is correct.
and let me add an example on how to run multiple compile on coffeescript:
# add these lines to your .vimrc file (~/.vimrc in my pc)
autocmd BufWritePost,FileWritePost *.coffee :silent !coffee --compile --join appstore/static/javascripts/angular/controllers.js file1.coffee file2.coffee
autocmd BufWritePost,FileWritePost *.coffee :silent !coffee --compile appstore/static/javascripts/angular/app.coffee appstore/static/javascripts/angular/directives.coffee appstore/static/javascripts/angular/filters.coffee appstore/static/javascripts/angular/services.coffee