Vim script で変数を不変で定義するコマンド
前回の続き。
id:tyru さんに色々とコメントを頂いてこんな感じになりました。
[ソース]
command! -nargs=1 Val let <args> | :execute 'lockvar '.matchstr(<f-args>, '\zs.*\ze=') Val value = 10 echo value " 代入できないよ let value = 10 " 再代入する場合は unlet か unlockvar unlet value " unlockvar value Val value = 42 echo value
おお、だいぶ使い勝手がよくなった気がする!
command 便利。
ただ、上記の場合で一度定義した変数は再度定義する事が出来ないので、何回も読み込むような Vim script ファイルで使う場合はエラーが出るのでどうするか。
うーん、再変を許す :Reval とか定義したら不変の意味がなくなるからなぁ…。
うむむ…。
しかし、command はあまり活用していないので、こういうのは全然思いつかなかった。
色々と悪さが出きそうですね!