在emacs()中获取错误的类型参数sequencep



我总是得到

Error during redisplay: (wrong-type-argument sequencep 42) [22 times]

在emacs消息缓冲区中。整个消息缓冲区就是这个错误消息。

即使我使用基本模式,错误仍然存在。

当我保存缓冲区、更改缓冲区时,会发生时间计数。但是,只要简单地输入字符或移动,时间就不会改变一个缓冲区中的游标。

我应该怎么做才能找出根本原因?一种方便地找出这个问题的更好的方法,就像在emacs启动时添加--debuginit一样。至少,它可以告诉我哪一行引发错误。

我的设置:emacs 24.124.2(当前)。archlinux。

这个Error during redisplay意味着错误在重新显示期间运行的Elisp代码中,所以Emacs不能方便地给你提供太多信息,因为这需要显示一些东西,而这已经是它试图做的了。

这里有一个半粗略的猜测:您的一些代码试图对模式行文本做些什么,重新显示会尝试经常更新。42作为字符是*并且字符串是序列。这里还有另一个半猜测:您加载的一些代码试图篡改模式行,试图将字符*处理为字符串*,对该(预期的)字符串执行序列操作。

无论如何,要找到问题,请递归地平分init文件(~/.emacs),直到找到罪魁祸首代码。(我认为当您在没有初始化文件emacs -Q的情况下启动Emacs时不会有问题。)

最新更新