Vim 8.2 で Vim script の辞書のキーの定義が簡略化できるようになった
Vim script で辞書を定義する場合、次のようにキーを文字列リテラルで定義していました。
let dict = { "one" : 1, "two" : 2, "three" : 3 } echo dict " => {'one': 1, 'two': 2, 'three': 3}
Vim 8.2 では上記のような定義を以下のように定義する事ができます。
" #{ から始めることで `キー名: 値` で定義できる let dict = #{ one: 1, two: 2, three: 3 } echo dict " => {'one': 1, 'two': 2, 'three': 3}
こんな感じで辞書リテラルを #{
から始めることで キー名: 値
で定義できるようになります。
キー名には ASCII文字 + 数字 + -
+ _
が使用できます。
let dict = #{ one: 1, two_key: 1, three-key: 2, 444: 4 } echo dict " => {'one': 1, 'three-key': 2, '444': 4, 'two_key': 1}
また 444: 4
とした場合、キーは "444"
になるので注意する必要があります。
これ自体は便利なんですがなぜ #{}
なんていうクソダサいリテラルにしてしまったのか…。もっといい書き方はなかったんですかねえ。