Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

VIM: How to pass arguments to functions from user commands?

Tags:

vim

I am trying to create a user-defined command in VIM that takes one argument and calls a function with the user supplied argument. Seems simple but I am unable to get it to work. Here is the code from my foo.vim plugin:

function! s:MyFunc(myParam)
    do something
endfunction

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

When I try this out in a VIM buffer like this:

:MyCommand exampleParam

I get the following errors:

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

What's wrong here? How do I fix this? Any help is greatly appreciated.

like image 398
venk Avatar asked Jul 09 '10 14:07

venk


1 Answers

Use <f-args>:

command! -nargs=1 MyCommand call s:MyFunc(<f-args>)
like image 139
JSBձոգչ Avatar answered Nov 03 '22 17:11

JSBձոգչ