Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This might be better for super user, but I figure as a tool of the trade it might be a better topic for here. I find often when editing in vim that I exit out, run some script that I am testing, and then go back into vim (yes I realize I can use :!command to run things from vim) I was just wondering if there is a way to hook something to run when the file is saved (:w)?

share|improve this question
up vote 4 down vote accepted

You might find incron of interest if you're using Linux.

share|improve this answer

See :he :autocmd and :he BufWritePost

The line would look like this:

:autocmd BufWritePost /path/to/file/or/pattern !command <afile>

If the <afile> thing does not work use %:p.

share|improve this answer

I got the "getting back to vim" part, but I'm not sure how to hit the ":w" command itself (which would be very handy, since that's quite reflexive for me)

w | silent execute "! myscript" | redraw!

I think it may be better for superuser as well.

share|improve this answer

This is blatant self-promotion, but I wrote a Vim plugin that will trigger certain shell scripts to be run after specific Vim autocmd events. For example, a script named would be run (synchronously) every time the BufWritePost command is fired. You could then easily include whatever arbitrary logic you want for doing stuff inside that script. The plugin assumes specific naming conventions of these scripts and also supports "hook" scripts which trigger only on files matching certain names or having certain extensions. And of course, you are free to choose any autocmd event you wish, although I have found BufWritePost fits most of my use cases.

Full details:

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.