Vim script で self をローカルに展開する
辞書関数内で自分にアクセスする為には self を使わないとダメなんですが、ちょっと手間だったんでローカルに展開するようにしてみました。
[ソース]
let dict = {} let dict.name1 = "homu" let dict.name2 = "mami" let dict.name3 = "mado" function! dict.to_string() " l: に self を展開 call extend(l:, self) return name1.name2.name3 endfunction echo dict.to_string()
[出力]
homumamimado
地味に便利になったと思います。
[注意]
値は書き換わらないので注意して下さい。
function! dict.check() call extend(l:, self) let name1 = "saya" echo name1 == self.name1 " => 0 endfunction
自分で言ってて忘れそう…。