Vim脚本中函数参数的默认值

Vim脚本中函数参数的默认值,vim,Vim,如何为Vim脚本中的参数指定默认值(例如0,无)?从文档中可以看出,Vim脚本中的参数似乎没有默认值。但是,您可以通过定义具有可变参数数的函数,并使用a:0确定额外参数数,以及a:1通过a:n访问这些参数来模拟此过程: function Foo(bar, ...) if a:0 > 0 let xyzzy = a:1 else let xyzzy = 0 end endfunction 您可以使用选择特定位置的参数,或者选择默认值(如果不存在) functio

如何为Vim脚本中的参数指定默认值(例如0,无)?

从文档中可以看出,Vim脚本中的参数似乎没有默认值。但是,您可以通过定义具有可变参数数的函数,并使用
a:0
确定额外参数数,以及
a:1
通过
a:n
访问这些参数来模拟此过程:

function Foo(bar, ...)
  if a:0 > 0
    let xyzzy = a:1
  else
    let xyzzy = 0
  end
endfunction
您可以使用选择特定位置的参数,或者选择默认值(如果不存在)

function! Foo(bar, ...)
    let baz = get(a:, 1, 0)
endfunction
因为Vim还支持真正的可选函数参数


然而,这意味着大多数vim安装还不支持这一点。neovim也不提供该功能。

使用三元语句的简短版本:
让l:xyzy=A:0>0?a:1:0