vim的call call与e129没有函数名与如何装饰函数

fun! Bd(F,...)
#不动函数,带参你操作了某个函数,然后不动
let s:i=line('.')
let H=function(a:F)
:call call(H,a:000)
#e129没有函数名,
:exe ':norm '.s:i.'G'
endf

#调用代码
fun! Qk3()
:call Bd('Qk2')
endf
#下面是bd0版本
fun! Bd0(F)
"不动函数不带参
let s:i=line('.')
let s:f=function(a:F)
:call s:f()
:exe ':norm '.s:i.'G'
endf


这里有意思的是:call call(H,a:000)函数.
参考地址在此
我光是看见函数是这样,可就是在报错e129,没有函数名.找半天,终于找到上面参考地址.别人说这里call(函数,参数列表)是个函数,而前面的call是命令,所以总是搞不定.折腾了半天.
要用call call,同时下次遇见e129没有函数名时,也可以参考参考.
call(H,a:000)能够简化我们对可变函数的调用,也是很好的.
可以用于类似py装饰器.

posted @ 2020-10-15 20:57  zjh6  阅读(16)  评论(0)    收藏  举报  来源