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