Vim の funcref() した関数を削除した時の挙動
ふと、気になったので試してみました。
[funcref()
した後に :delfunction
する]
function! Test() return "test" endfunction let F = funcref("Test") delfunction Test echo F() " E933: 関数は削除されました: Test " E15: 無効な式です: F()
まあ、これは予想通りですね
[関数を上書きしてから削除する]
次は、削除する前に関数を上書きして試してみた。
function! Test() return "test" endfunction let F = funcref("Test") function! Test() return "over test" endfunction delfunction Test echo F() " => test
この場合は、funcref()
した関数は消されるに残ってるみたいです。