引用vim参数

引用vim参数,vim,Vim,我想删除vim参数周围的引号[[0] 我遇到的问题是,当我定义一个新命令并用一个参数调用它时,比如说:MyCommand Blah,它会被称为:MyCommand“Blah”。问题是,我希望参数Blah被取消引用,因为我有一个环境变量,我想在参数前面加上$,这样完整的命令实际上读起来像:MyCommand$Blah 如何引用参数?用于将自定义命令参数传递给Vimscript函数;在这里,您需要引用以将这些参数作为字符串传递 如果要将参数传递给另一个(内置或自定义)命令,只需使用,即可按原样传递参

我想删除vim参数周围的引号
[[0]

我遇到的问题是,当我定义一个新命令并用一个参数调用它时,比如说:
MyCommand Blah
,它会被称为
:MyCommand“Blah”
。问题是,我希望参数
Blah
被取消引用,因为我有一个环境变量,我想在参数前面加上
$
,这样完整的命令实际上读起来像
:MyCommand$Blah

如何引用参数?

用于将自定义命令参数传递给Vimscript函数;在这里,您需要引用以将这些参数作为字符串传递

如果要将参数传递给另一个(内置或自定义)命令,只需使用
,即可按原样传递参数

如果需要分离参数,请将一些参数传递给命令X,另一些传递给命令Y,最好不要在
:command
定义中内联,而是在函数中内联,因此
方法可以正常工作

例子
命令-nargs=*测试调用TestFunc()
功能!TestFunc(…)
echomsg的参数1是a:1
echomsg的参数2、3是join(a:000[1:2])
端功能

使用
而不是
@romainl如果我想要超过1个参数怎么办。我如何得到第一个或第二个论点?有了
我可以做
[[0]
[[1]
拆分(,“”)
command! -nargs=* Test call TestFunc(<f-args>)

function! TestFunc( ... )
    echomsg 'argument 1 is' a:1
    echomsg 'arguments 2, 3 are' join(a:000[1:2])
endfunction