在独立缓冲区内实时监控vim消息

时间:2013-12-25 22:45:07

标签: vim macvim

我正在开发一个vim插件,作为其中的一部分,我正在测试各种各样的东西,比如" auto-groups"和一般我可以勾结点点滴滴的事件。当事情正在运行时,我正在使用使用echom命令输出各种调试消息的函数。问题是,一旦我想查看输出,我需要输入:message,然后继续按键,直到消息结束,所以我可以看到最后一条消息是什么。

有解决方法吗?比如,是否有一个插件可以帮助我在一个单独的缓冲区内实时查看消息流?

感谢。 (OSX,MacVim)

2 个答案:

答案 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