Vim script の lambda で可変長引数を受け取る

Vim script の lambda で可変長引数を受け取る場合は特に引数を定義する必要はなく、a: を参照すれば通常の関数と同様に取得できます。

" 通常の関数引数の a: と同じように使える
" a:000 に渡された引数が保存されている
let Even = { -> filter(copy(a:000), "v:val % 2 == 0") }
echo Even(1, 2, 3, 4, 5, 6)
" => [2, 4, 6]

a: は通常の関数と同じように使うことが出来ます。

[使用した vim のバージョン]

  • 7.4.2067