Right now I have the following in my .vimrc: au BufWritePost *.c,*.cpp,*.h !ctags -R There are a few problems with this: It's slow -- regenerates tags for files that haven't changed since the last tag generation. I have to push the enter button again after writing the file because of an inevitable "press Enter or type command to continue". When you combine these two issues I end up pushing the add