我正在开发一个vim插件,作为其中的一部分,我正在测试各种各样的东西,比如" auto-groups"和一般我可以勾结点点滴滴的事件。当事情正在运行时,我正在使用使用echom
命令输出各种调试消息的函数。问题是,一旦我想查看输出,我需要输入:message
,然后继续按键,直到消息结束,所以我可以看到最后一条消息是什么。
有解决方法吗?比如,是否有一个插件可以帮助我在一个单独的缓冲区内实时查看消息流?
感谢。 (OSX,MacVim)
答案 0 :(得分:1)
不要直接使用:echom
,而是编写一个s:Log(message)
函数。它应切换到您的日志缓冲区,然后在底部附加a:message
(如果您愿意,可以在顶部附加)。切换回当前缓冲区并:execute "echom" a:message
。
如果您还想在日志缓冲区中查看常规消息,可以使用:redir
捕获消息,然后将它们附加到CursorHold事件的日志缓冲区中。这更复杂,它会占用你的一个命名缓冲区。
:help :wincmd
:help :put
:help append()
:help :redir
:help CursorHold
答案 1 :(得分:0)
对我来说,:echomsg
和:messages
大部分时间都很好。如果您需要更精细的内容,请查看Decho - Vim script internal debugger插件。它可以在单独的窗口中捕获日志消息。
对于多毛的部件,没有足够的原木输出量;然后你可以启动内置的交互式调试;见:help debug-scripts
。