On Wed, 30 May 2012, HarleyPig wrote:

I'm using the auto reload trick for my .vimrc:

if !exists( "autoload_vimrc" )

 let autoload_vimrc = 1
 autocmd BufWritePost .vimrc source $MYVIMRC

endif

A better way to prevent doubling autocmds is to put them in a group (better mainly because it prevents using a global variable, but it's also more idiomatic VimL):

aug AutoloadVimrc
  au!
  au BufWritePost .vimrc source $MYVIMRC
aug END

Or just force the autocmd to be recreated (and don't worry about the global var):

autocmd! BufWritePost .vimrc source $MYVIMRC

Personally, I prefer the group, since it lets you disable multiple commands easily. E.g. if you end up using multiple AutoloadVimrc commands, you can clear them all by issuing:

:au! AutoloadVimrc


I'd like to auto reload .vimrc when any of my configuration files are modified.

I tried adding all of the following to the if section above:

 autocmd BufWritePost .vim/after/plugin/misc.vim source ~/.vimrc
 autocmd BufWritePost .vim/after/plugin/misc.vim source $MYVIMRC
 autocmd BufWritePost misc.vim source ~/.vimrc
 autocmd BufWritePost misc.vim source $MYVIMRC

None seem to work.

In what way do they not work? To verify that your .vimrc is being reloaded, add this to your .vimrc:

echomsg 'Loaded .vimrc'

Then, when you write your .vimrc, check the messages:

:mess

With your original autocmd, writing my vimrc twice yields:

"~/.vimrc" 233L, 6448C written
Loaded .vimrc
"~/.vimrc" 233L, 6448C written
Loaded .vimrc

Also note that your plugins won't be reloaded just because you source your ~/.vimrc. They're autoloaded at startup. (See :help load-plugins for the gory details.) From that help text, maybe you also want:

autocmd BufWritePost misc.vim runtime! plugins/**/*.vim


My ~/.vim directory is actually a symlink to ~/projects/dot_vim/.vim, so I don't really want to hardcode the path. However, just to test, I even did that. Still no joy.

Ideally, it would be great to just say if any *.vim file in the .vim directory is modified then reload $MYVIMRC.

Any pointers?

Beware the dragons. You're bound to run into some plugin or another that doesn't cleanly apply twice. In my experience, it's not worth the hassle of debugging the auto-reload autocmd's. Just find better ways to start Vim or get it back into the state you want.

E.g.
:help :mksession
:help :mkview
:help :loadview

The way I use Vim, I find that the Ctrl-P plugin makes it fast enough to open whatever per-project files I'm interested in, so that shutting down Vim and restarting simply isn't much hassle.

--
Best,
Ben

--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to