You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vim中获取函数调用的文件及行号信息?

在Vim中获取函数调用的文件及行号

完全可行,Vim内置了类似Python inspect 模块的功能,通过 debugstack() 函数可以获取调用栈信息,进而拿到调用函数的文件和行号。

实现示例

对应你给出的Python示例,用Vimscript实现的代码如下:

function! myfunction(message)
    " 获取完整调用栈
    let stack_frames = debugstack()
    " 栈的第1个元素是调用当前函数的上下文(第0个是函数自身的栈帧)
    let caller_frame = stack_frames[1]
    " 格式化输出调用信息
    let output = printf("%s:%d - %s", caller_frame.filename, caller_frame.lnum, a:message)
    echo output
endfunction

关键说明

  • debugstack() 返回一个列表,每个元素是代表栈帧的字典,包含filename(调用所在文件路径)、lnum(行号)、func(调用处的函数名,若有的话)等字段。
  • 如果直接在Vim命令行执行:call myfunction("test"),filename会显示为<Cmdline>,行号为1,符合命令行调用的上下文。
  • 若在Vim脚本文件(比如.vimrc或自定义.vim文件)中调用该函数,会正确显示对应的脚本文件路径和调用行号。

内容的提问来源于stack exchange,提问作者Reman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 07:19:52