我有一个基本的VIM功能问题:(我尝试过谷歌搜索,但找不到答案)
- 如何列出所有自定义函数。(我使用了 :function 命令,但找不到我的自定义函数)
- 如何获取自定义函数列表中函数的定义(或它们存储在哪里)。
谢谢你的帮助。
我有一个基本的VIM功能问题:(我尝试过谷歌搜索,但找不到答案)
谢谢你的帮助。
:verbose function My<tab>
如果您的函数已在vim中加载,它应该会显示在那里,您可以看到它在哪里被定义。
(对于<tab>,我实际上是指按下tab键)
如果您在没有参数的function
输出中找不到自定义函数,那么它很可能是像这样声明的匿名函数:
let g:dict={}
function g:dict.f()
echo "here"
endfunction
function g:dict.f
(如@skeept建议的那样在前面加上verbose
以了解它的定义位置)。请注意,您无法在此处使用制表符完成,并且无法获取所有匿名函数的列表。function {N}
代替function g:dict.f
中的g:dict.f
,其中N
是任何返回匿名函数编号的表达式,例如function {substitute(string(g:dict.f), '^.*\(\d\+\).*$', '\1', '')}
。或者如果您只收到像这样的错误Error detected while processing function 243..242:
并希望查看函数242的定义,则只需使用function {242}
即可。
verbose function
不会列出 所有 函数,只会列出那些不是匿名函数的函数。例如,我的一些插件根本不包含非匿名函数。 - ZyX