Sometimes I try a customization/command in my vimrc. Everything seens to be correct, but it just doesn't work.
It's difficult to know what's happening when vim starts, and know which command failed or not, so it's really difficult to debug what can be causing a problem in my vimrc. It's a trial-error approach, which is time consuming and really a PITA. For example, I'm having problems with snipmate plugin in some files and just don't have a clue on how to discover the problem.
Is there a "runtime log" when vim starts, telling which commands it executed, which ones failed and such? This would help me a lot.
running vim with the -V[N] option will do a pretty hefty runtime log, here N is the debug level.
would create a log of debug level 9 in the current directory with the filename
myVim.log
This probably goes against everything SO stands for, but here's what I do: I just hit print screen soon as the warning comes up and look at the picture.
:messages
shows all warnings, errors, and informational messages that appeared (possibly briefly) in the vim statusline.:echo errmsg
prints the most recent error message.g<
is another feature few people know about. From:help g<
:For example try
:!ls
then cancel the prompt, then hitg<
.Put this function into .vimrc:
Then create directory
~/.log/vim
and callToggleVerbose()
to get your log in~/.log/vim/verbose.log
. Note that you may catch «variable nested too deep for displaying» error which will not normally appear just because you have raised your verbose level.I don't think there is a runtime log, per se, but you can run it in debug mode.
http://web.archive.org/web/20090323034339/http://www.troubleshootingwiki.org/Debugging_Vim_Scripts
I had to add "set nocp" to use "ToggleVerbose()" function when run in root because of &verbose