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

54

我正在尝试在VIM中创建一个用户定义的命令,该命令带有一个参数并调用一个使用用户提供的参数的函数。看起来很简单,但我无法让它正常工作。这是我foo.vim插件中的代码:

function! s:MyFunc(myParam)
    do something
endfunction

command! -nargs=1 MyCommand call s:MyFunc(myParam)

当我尝试在VIM缓冲区中执行以下操作时:

:MyCommand exampleParam

我遇到了以下错误:

E121: Undefined variable: myParam 
E116: Invalid arguments for function <SNR>7_MyFunc

这里有什么问题?我该如何修复它?非常感谢任何帮助。

1个回答

75

使用<f-args>

command! -nargs=1 MyCommand call s:MyFunc(<f-args>)

2
我不确定 ! 是什么意思... 它表示覆盖现有命令。我发现这个链接很有帮助: http://www.adp-gmbh.ch/vim/user_commands.html
:com! 现有命令名称 命令替换内容
- alockwood05

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接