你怎么能在autocmd中使用参数

时间:2016-06-03 02:41:57

标签: vim

让我说我有一些功能让我进入插入模式,我想添加一个清除函数,一旦我离开插入模式就被调用。 我会做这样的事情:

function! s:Foo(arg)
    augroup cleanup_group
        autocmd!
        autocmd InsertLeave * call <sid>cleanup(a:arg)
    augroup END
    " ...
endfunction

为什么我不能这样做?另外,我无法在a:arg内使用remaps,我有点得到,但为什么这也不可能? 你怎么会这样做呢?

1 个答案:

答案 0 :(得分:1)

如果您想传递arg(来自s:Foo),则可以使用:exe

类似的东西:

...
exe 'autocmd InsertLeave * call <sid>cleanup('.string(a:arg).')'
...