是否有“ vim运行时日志”?


130

有时我会在vimrc中尝试自定义/命令。一切似乎都是正确的,但那是行不通的。

很难知道vim启动时正在发生什么,也不知道哪个命令失败了,因此调试在vimrc中可能引起问题的内容真的很困难。这是一种尝试错误的方法,非常耗时,而且实际上是PITA。例如,某些文件中的snipmate插件存在问题只是对如何发现问题一无所知

vim启动时是否有“运行时日志”,告诉它执行了哪些命令,哪些失败了?这对我有很大帮助。

Answers:


163

使用-V [N]选项运行vim会产生大量的运行时日志,这里N是调试级别。

vim -V9myVim.log

会在当前目录中使用文件名创建调试级别9的日志 myVim.log


我喜欢Zyx和您的两种方法,但是我认为您的方法更好,因为它更简单,仅在cmd中,并且每次运行它时都可以设置日志的路径,而无需“膨胀”。 “我的vimrc。欢迎来到!
有人仍在使用您MS-DOS 2010年

2
另请参阅:h 'verbose':h :verbose
Palec 2015年

MacVim似乎不支持该-V选项或任何命令行选项。
emallove19年

这将打开一个没有文件名的空vim缓冲区。接下来是什么?
Geoff Langenderfer

104

:messages 显示在vim状态行中出现的所有警告,错误和信息性消息(可能简短)。

:echo errmsg 打印最新的错误消息。

g<是很少有人知道的另一个功能。来自:help g<

g<命令可用于查看先前命令输出的最后一页。如果您不小心<Space>在命中输入提示下键入内容,这将特别有用。

例如,尝试:!ls取消提示,然后点击g<


15

将此函数放入.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。请注意,您可能会遇到“变量嵌套太深而无法显示”错误,该错误通常不会因为您提高了详细级别而出现。



1

这可能与SO所代表的一切背道而驰,但是这就是我要做的事情:警告出现并立即查看图片时,我只是点击了打印屏幕。


减去浪费的纸张,暂停按钮不会起到类似的作用吗?
2012年

到目前为止,我还不知道暂停键的作用。在任何情况下,我不认为它在Linux的任何stackoverflow.com/questions/92802/...
库尔德斯坦爱国联盟

2
FWIW,* nix终端将在Ctrl-S上暂停输出,并在Ctrl-Q上恢复。
joeytwiddle13年

1

由于&verbose在根目录下运行时,我必须添加“ set nocp”以使用“ ToggleVerbose()”功能

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.