Vim script の unlet! に関する覚書
Vim script の unlet は変数を削除する機能です。
let hoge = 42 unlet hoge " Error echo hoge
これに !
をつけると存在しない変数名を unlet
しようとした場合、エラーメッセージを出力されないようにできます。
let hoge = 42 unlet hoge " エラー出力される unlet hoge " エラー出力されない unlet! hoge
また、unlet
は辞書や配列の要素に対しても使用する事ができます。
let list = [1, 2, 3] unlet list[1] let dict = { "name" : "homu", "age" : 14 } unlet dict.name
問題
存在しない辞書や要素に対して unlet!
した場合エラーメッセージが出力されてしまいます。
let dict = {} " エラーメッセージが出力される unlet! dict.name " 存在しない変数名の要素を削除しようとしてもエラーメッセージが出力される unlet! aaaaaa.name
unlet!
の目的を考えるとここら辺のエラーメッセージも出力されない方がよいと思う。
ちなみに silent!
を使えば無理やり表示されないようにすることは可能。
let dict = {} silent! unlet dict.name silent! unlet aaaaaa.name