VIM:如何从用户命令传递参数到函数?

ven*_*enk 46 vim

我试图在VIM中创建一个用户定义的命令,它接受一个参数并使用用户提供的参数调用一个函数.看似简单,但我无法让它工作.这是我的foo.vim插件的代码:

function! s:MyFunc(myParam)
    do something
endfunction

command! -nargs=1 MyCommand call s:MyFunc(myParam)
Run Code Online (Sandbox Code Playgroud)

当我在这样的VIM缓冲区中尝试这个时:

:MyCommand exampleParam
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

E121: Undefined variable: myParam 
E116: Invalid arguments for function <SNR>7_MyFunc
Run Code Online (Sandbox Code Playgroud)

这有什么不对?我该如何解决?任何帮助是极大的赞赏.

JSB*_*ոգչ 61

用途<f-args>:

command! -nargs=1 MyCommand call s:MyFunc(<f-args>)
Run Code Online (Sandbox Code Playgroud)

  • 我不确定`!`是什么意思...这意味着覆盖现有命令。我发现这很有用:http://www.adp-gmbh.ch/vim/user_commands.html&gt;`:com!``Existing-cmd-name cmd-replacement` (2认同)