有时我会在 vimrc 中尝试一个定制/命令。
很难知道 vimrc 启动时发生了什么,也很难知道哪个命令失败了,所以调试 vimrc 中可能导致问题的内容非常困难。这是一种试错法,既费时又费力。例如,我有问题 插入一些文件和只是不知道如何发现这个问题的线索。
当 vim 启动时,是否有一个“运行时日志”,告诉它执行了哪些命令,哪些命令失败了等等?这对我很有帮助。
我不认为有一个运行时日志,本质上,但您可以在调试模式下运行它。 Http://web.archive.org/web/20090323034339/http://www.troubleshootingwiki.org/debugging_vim_scripts
使用-V [ N ]选项运行 vim 将执行大量的运行时日志,这里 N 是调试级别。
vim -V9myVim.log
将在工作目录中创建一个名为 myVim.log的9级调试日志
myVim.log
将这个函数放入. 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中的日志。注意,您可能会捕获“嵌套太深以致无法显示的变量”错误,这种错误通常不会因为您提高了详细级别而出现。
~/.log/vim
ToggleVerbose()
~/.log/vim/verbose.log
这可能违背了 SO 所代表的一切,但是我这样做: 当警告出现时,我立即点击打印屏幕,然后看图片。
:messages显示出现在 vim 状态线中的所有警告、错误和信息性消息(可能是简短的)。
:messages
:echo errmsg打印最近的错误消息。
:echo errmsg
g<是另一个鲜为人知的特性:
g<
可以使用 g<命令查看上一个命令输出的最后一页。如果您在点击-输入提示符时不小心键入了 <Space>,那么这一点尤其有用。
<Space>
例如,尝试 :!ls,然后取消提示,然后按 g<。
:!ls
在 root 中运行时,我必须添加“ set nocp”来使用“ ToggleVerbose ()”函数,因为 & verose