原(更新如下)
我用了很多匿名函數聲明爲一本字典,又名「方法」的一部分,即功能工作。它變得相當痛苦的調試,因爲我不知道什麼功能的錯誤都發生在傾銷的源代碼匿名函數
Vim的回溯這個樣子:
Error detected while processing function NamedFunction..2111..2105:
line 1:
E730: using List as a String
此跟蹤顯示,在第三級發生錯誤下來該堆棧在匿名函數#2105的第一行。 IE NamedFunction稱爲匿名函數#2111,它稱爲匿名函數#2105。命名函數是通過正常function NamedFunction() ... endfunction
語法聲明的函數;其他人則使用function dict.func() ... endfunction
這類代碼進行申報。
所以很明顯,我想找出哪個函數數2105
假設它仍然在範圍,這是可能找出字典項引用這所傾倒所有的字典變量的那可能包含該參考。這是有點尷尬,很難有系統的,但我想我可以編寫一個函數來搜索所有加載的字典,以引用該函數,注意循環引用。雖然要非常徹底,但它不僅要搜索腳本本地和全球字典,還要搜索緩衝區本地字典;有沒有辦法訪問另一個緩衝區的局部變量?
無論如何,我想知道是否有可能轉儲匿名函數的源代碼。這會更容易,可能更可靠。
更新
我結束了vim_use郵件列表上asking about this而回。 Bram Moolenar,又名vim的BDFL,迴應說:「你不應該使用功能號碼。」然而,截至2010年9月初,還沒有提出適合這種功能的替代方案。也沒有明確提到這個功能是否會在隨後的vim版本中繼續工作。在最近發佈的vim 7.3中,我沒有試過這樣做(或者其他任何事情)。
美女。是的,vim的文檔是。 。 。不完全一致。你是通過反覆試驗來弄清楚的,還是記錄在某處? – intuited 2010-06-30 04:44:16
試錯,我不得不把幾塊放在一起。這個解決方案可能只是利用':function'命令中的一個錯誤。 – 2010-06-30 06:15:33
我想我可以閱讀vim的源代碼。我有時會忘記。 – intuited 2010-06-30 17:23:12