VIM自定义功能定义/位置

时间:2010-09-27 02:10:01

标签: vim

我有基本VIM功能的问题:(我试过谷歌搜索,但找不到答案)

  1. 如何列出所有自定义内容 功能。(我做了:功能,但不能 找到我的自定义功能)
  2. 我怎样才能得到定义 自定义函数列表中的函数 (或存放它们的地方)。
  3. 感谢您的帮助

2 个答案:

答案 0 :(得分:8)

假设您的函数名为MyFunction,那么以下内容适用于我:

:verbose function My<tab>

(对于&lt; tab&gt;我的意思是实际按Tab键)

如果您的功能在vim中加载,它应该显示在那里,您可以看到它的定义位置。

答案 1 :(得分:2)

如果在没有参数的情况下在function的输出中找不到自定义函数,那么它可能是一个匿名函数,声明如下:

let g:dict={}
function g:dict.f()
    echo "here"
endfunction

在这种情况下,获取其定义的唯一方法是使用function g:dict.f(pre verbose作为@skeept建议知道它的定义位置)。请注意,您无法在此处使用制表符完成,也无法获取所有匿名函数的列表。

而不是g:dict.f中的function g:dict.f,您可以使用function {N},其中N是任何返回匿名函数的表达式,例如function {substitute(string(g:dict.f), '^.*\(\d\+\).*$', '\1', '')}。或者只是function {242}如果你得到的是这样的错误:Error detected while processing function 243..242:并想看到函数242的定义。