2011-11-23 33 views
1

美好的一天,当负荷的源文件到编辑,我得到以下信息工作:的Emacs不能得到flymake上的Emacs 24(Linux)的

File mode specification error: (wrong-type-argument stringp nil) 

和flymake根本然后不工作。 从--init-debug开始不会改善任何音调。任何想法如何调试问题的原因?

回答

3

当Lisp函数实际需要字符串参数但收到nil时,会引发此一般错误。

试着在你的.emacs的顶部设置(setq debug-on-error t)得到一个堆栈跟踪显示你哪个字符串nil。如果错误是由您的中的FlyMake设置引起的.emacshere是一个很好的介绍。

wrong-type-argument异常的更深层的原因是Lisp函数没有原型,不能依赖解释器;他们总是被定义的,因此需要自己解析他们的论点。

Emacs Lisp解释器本身不会执行类型检查 调用时传递给函数的实际参数。 [...] 因此,由单个函数来测试每个 实际参数是否属于函数可以使用的类型。

欲了解更多信息,请参阅Emacs Lisp参考手册中的Type Predicates