我正在寻找一种在执行VIM脚本(例如,堆栈跟踪)期间打印调用函数的方法,类似于Perl中的caller()
支持。
VIM是否有这样的内置支持?
答案 0 :(得分:0)
这是可能的。但它绝对不是内置功能。我通过抛出异常并解码v:throwpoint
来攻击它。我不会在这里重现代码,因为它足够复杂并且IMO超出了SO的范围。
所有内容都可以在lh#exception#callstack()
如果仔细观察,您会看到调用堆栈中的每个函数都被提取,在scriptnames
中搜索,以便推断出调用发生的代码的确切行。我也避免提取我已有的信息。
我用它来定义一个日志功能,用当前的呼叫点填充quickfix窗口。