是否可以在Vim脚本中的另一个自动加载的字典函数中调用自动加载的词典函数?
我想要这样的东西
autoload/foo.vim
:
function! foo
return 1
endfunction
let foo
function! foo
echo "hi"
endfunction
let foo
function! foo
call foo
endfunction
我想从另一个文件中这样使用它/交互/其他:
call foo#Initialize()
call foo#OtherDict.call_hi()
不幸的是,这给我带来了一个错误:
E121: Undefined variable: foo
对的呼叫
foo#Initialize()
由于Vim中与字典功能相关的错误/限制,没有触发自动加载。有一个
Google Groups
Bram证实了这个问题。
然而,我不确定这是这个问题的根源,因为一旦文件被自动加载(通过
foo#初始化()
),调用字典函数通常可以工作。正是上面的嵌套调用示例给了我一个错误。
为了澄清,这很好:
function! foo
echo "hello"
endfunction
function! foo
call foo
end
只有对自动加载的字典函数的嵌套调用失败。