Vim の map() や filter() に渡すラムダ内で v:val や v:key が使用できる
ちょっとした小ネタですが、従来、map()
や filter()
に渡す文字列式の中では v:val
や v:key
を使用することが出来ます。
echo map([1, 2, 3], "v:val + v:val") " => [2, 4, 6] echo filter({ "mami" : 1, "mado" : 2, "homu" }, 'v:key =~ ''^m''') " => {'mado': 2, 'mami': 1}
この v:val
と v:key
ですが、ラムダ内でも参照することが出来ます。
echo map([1, 2, 3], { -> v:val + v:val }) " => [2, 4, 6] echo filter({ "mami" : 1, "mado" : 2, "homu" : 3 }, { -> v:key =~ '^m' }) " => {'mado': 2, 'mami': 1}