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