美好的一天,当将任何源文件加载到编辑器中时,我收到以下消息:
File mode specification error: (wrong-type-argument stringp nil)
而flymake根本就没有工作。
从--init-debug
开始并没有改善任何方面。知道如何调试问题的原因吗?
答案 0 :(得分:3)
当Lisp函数实际需要字符串参数但收到nil
时会抛出此一般错误。
尝试在 .emacs 的顶部设置(setq debug-on-error t)
,以获得显示哪个字符串为nil
的堆栈跟踪。如果错误是由 .emacs 中的FlyMake设置引起的:here是一个很好的介绍。
wrong-type-argument
例外的更深层原因是Lisp函数没有原型,不能依赖解释器;它们总是被定义,因此需要自己解析它们的论点。
Emacs Lisp解释器本身不执行类型检查 调用它们时传递给函数的实际参数。 [...] 因此,由各个功能来测试是否各自 实际参数属于函数可以使用的类型。
有关更多信息,请参阅Emacs Lisp参考手册中的Type Predicates。