启动时 emacs 发出"ding"声音并显示"<noname> is undefined"消息



我在Windows 7 Professional 64位上使用了一个非常旧的Emacs版本,所以我升级到了Emacs 25.3.1 64位。安装进行得很顺利。

当我运行Emacs时,我开始读取初始缓冲区中的消息,然后我听到"ding"的声音,并显示消息"<noname>is undefined"。

我开始在缓冲区中输入,在第一声"丁"声大约10秒后,又出现了另一声,消息"<noname>is undefined"再次显示。

如果我试图在缓冲区中输入文本或输入命令,我会被"ding"one_answers"<noname>is undefined"消息打断。这使得Emacs变得毫无用处。

考虑到我的Emacs初始化文件中可能有一些内容不再有效,我关闭了Emacs,并重命名了Emacs的初始化文件,然后再次启动Emacs。同样的"丁"音和同样的信息。

我不知道"noname"Emacs在抱怨什么,也不知道该怎么解决。现在快凌晨3点了(美国东部时间),所以我要睡一觉,在白天解决这个问题。

哦!还有一件事——我通过远程桌面访问Windows 7 Professional 64位盒子,因为计算机处于另一种状态。

知道发生了什么事吗?


更多信息:我在安装了新版本的Emacs后重新启动。当电脑重新启动时,它会自动启动DishAnywhere播放器。

通常情况下,我会在发布后不久杀死DishAnywhere播放器,但昨晚我没有,所以当我发布Emacs时,DishAnywhere正在运行。

今天我做了一些实验,发现:

--如果DishAnywhere正在运行,并且我启动Emacs,Emacs将"Ding"并每10秒显示一次"<noname>is undefined"消息。

--如果我退出Emacs并关闭DishAnywhere,然后启动Emacs,Emacs就会正确运行——没有"Ding"或错误消息。

--如果我在Emacs开始运行后启动DishAnywhere,则不会出现"丁"或错误消息。

--如果我退出Emacs,等待几分钟,然后再次启动Emacs(当DishAnywhere正在运行时),Emacs就会正确运行——没有"Ding"或错误消息。

所以。。。

如果DishAnywhere在Emacs启动之前运行,则Emacs会出现问题"Dings"并显示错误消息。

如果Emacs在DishAnywhere之前启动,并且在DishAnywhere启动时正在运行,那么Emacs将正确运行。

解决方法是:

在启动Emacs之前杀死DishAnywhere,然后启动DishAnywhere

但问题是DishAnywhere和Emacs之间的交互是什么导致了这个问题?

使用emacs -Q启动Emacs时会发生这种情况吗?如果是这样,那么使用M-x report-emacs-bug,提供你正在做的和你看到的食谱。

如果不是(我猜是这样),那么递归地平分init文件以找到罪魁祸首代码。可以使用命令comment-region注释掉代码块。如果将C-ucomment-region一起使用,则会取消对代码块的注释。

注释1/2,然后3/4,然后7/8。。。以缩小有问题的部分。这是一个二进制搜索,所以做起来非常快,即使这意味着要多次重新启动Emacs。

最新更新