VIM: Как передать аргументы в функции из пользовательских команд? - PullRequest
46 голосов
/ 09 июля 2010

Я пытаюсь создать пользовательскую команду в 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 Ответ

60 голосов
/ 09 июля 2010

Использование <f-args>:

command! -nargs=1 MyCommand call s:MyFunc(<f-args>)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...