使用调用跟踪调试Vim插件

Dar*_*rek 17 vim vim-plugin

调试/跟踪vim插件的首选方法是什么?假设我有一个相当复杂的插件Foo,在按下的键上F9打开带有文件浏览器的新窗口,并且可以选择一个文件,然后将文件名复制到主窗口中.当我按下F9键时,我希望看到所谓的呼叫,某种呼叫追踪.

Pri*_*ash 15

我发现的最好的方法是-V在启动(g)vim时使用标志.您可以N为写入的日志指定跟踪级别和文件名:

$ vim -V[N]{filename}
Run Code Online (Sandbox Code Playgroud)

然后将为每个源文件提供跟踪消息.(有关:help -V详细信息,请参阅.)

拖拽生成的日志文件可能很痛苦,但通常信息非常丰富.我发现最好在触发事件之前和之后查看日志文件(<F9>在你的情况下按下)以获得何时发生的图片.


Fri*_*der 6

如果您已经打开了vim,请尝试在VIM的内置调试器下手动执行该命令.

1)找出当你按下键时vim做了什么

:map <F-9>
Run Code Online (Sandbox Code Playgroud)

2)在调试器下手动运行映射命令

:debug _mapped_command_
Run Code Online (Sandbox Code Playgroud)

3)现在你应该进入调试器,所以

set verbose=20
Run Code Online (Sandbox Code Playgroud)

4)最后按nEnter键继续运行脚本

此时你应该在屏幕上看到一大堆输出.您可以按空格键滚动屏幕,按j/k按键移动.

任何以"Line#:"开头的输出都是当时正在执行的行.