原(更新如下)
我用了很多匿名函数声明为一本字典,又名“方法”的一部分,即功能工作。它变得相当痛苦的调试,因为我不知道什么功能的错误都发生在倾销的源代码匿名函数
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