有时我在vimrc中尝试自定义/命令。一切都是正确的,但它不起作用。
很难知道当vim启动时发生了什么,并且知道哪个命令失败了,所以很难调试可能导致我的vimrc出现问题的原因。这是一种试错法,耗时而且真的是PITA。例如,我遇到了问题with snipmate plugin in some files,并且没有找到如何发现问题的线索。
当vim启动时是否存在“运行时日志”,告诉它执行了哪些命令,哪些命令失败等等?这对我有很大帮助。
答案 0 :(得分:137)
使用-V [N]选项运行vim会执行一个非常重要的运行时日志,这里N是调试级别。
vim -V9myVim.log
将在当前目录中使用文件名myVim.log
答案 1 :(得分:84)
:messages
显示vim状态行中出现的所有警告,错误和信息性消息。
:echo errmsg
打印出最新的错误消息。
g<
是很少有人知道的另一个功能。来自:help g<
:
g<
命令可用于查看上一个命令输出的最后一页。如果您在命中输入提示符时意外键入<Space>
,这将非常有用。
例如,尝试:!ls
然后取消提示,然后点击g<
。
答案 2 :(得分:13)
将此功能放入.vimrc:
function! ToggleVerbose()
if !&verbose
set verbosefile=~/.log/vim/verbose.log
set verbose=15
else
set verbose=0
set verbosefile=
endif
endfunction
然后创建目录~/.log/vim
并致电ToggleVerbose()
以登录~/.log/vim/verbose.log
。请注意,您可能会发现«变量嵌套太深而无法显示»错误,这通常不会因为您提高了详细级别而出现。
答案 3 :(得分:2)
我认为没有运行时日志本身,但您可以在调试模式下运行它。
http://web.archive.org/web/20090323034339/http://www.troubleshootingwiki.org/Debugging_Vim_Scripts
答案 4 :(得分:1)
由于&amp; verbose
,我必须在root中运行时添加“set nocp”才能使用“ToggleVerbose()”函数答案 5 :(得分:0)
这可能违背SO所代表的一切,但这就是我所做的:我只是在警告出现时立即点击打印屏幕并查看图片。