更新后Emacs自动完成中断:必需';弹出窗口';未提供功能

更新后Emacs自动完成中断:必需';弹出窗口';未提供功能,emacs,autocomplete,popup,emacs24,Emacs,Autocomplete,Popup,Emacs24,更新过时的软件包后,auto complete(及其依赖项,如ac slime)中断,错误为“未提供所需的功能“popup”。检查elpa目录发现popup在那里。使用byte recompile directory重新编译elpa目录中的所有内容并没有解决问题(存在popup.el和popup.elc,但自动完成仍然失败) PS.进一步检查发现,由于缺少xml prc,其他一些软件包出现故障,但Emacs显示它已安装,并且确实存在于elpa目录中 让Emacs重新工作的步骤是什么?由于目前还没

更新过时的软件包后,
auto complete
(及其依赖项,如
ac slime
)中断,错误为“未提供所需的功能“popup”。检查
elpa
目录发现
popup
在那里。使用
byte recompile directory
重新编译
elpa
目录中的所有内容并没有解决问题(存在
popup.el
popup.elc
,但
自动完成
仍然失败)

PS.进一步检查发现,由于缺少
xml prc
,其他一些软件包出现故障,但Emacs显示它已安装,并且确实存在于
elpa
目录中


让Emacs重新工作的步骤是什么?

由于目前还没有其他答案(我希望会有一个真正的答案!),以下是在此期间行之有效的方法:

基本上,在软件包更新过程中出现了一些问题——不知道具体是什么。通常,
elpa
目录上的
byte recompile directory
有助于解决问题:它会重新编译所有包文件,并且在重新启动Emacs后通常可以毫无问题地加载它们。然而,这一次,它没有帮助。因此,我采取了一种更为激进的措施:我删除了
elpa
目录表单
~/.emacs.d
(或者实际上我把它移走了),并重新启动了emacs

我的
.emacs
文件包含了如果丢失需要安装的包的列表,因此所有包的重新安装都是自动进行的,我只需要等待(大约30分钟)emacs启动

(这是一个众所周知的技巧,但如果您感兴趣,这里是来源)


但是这个解决方案并不理想,我希望有更干净的东西。

提供
popup.el的声明。所以我想知道你为什么会犯这样的错误。我现在回想起来,在过去,当软件包更新时,有些东西可能会损坏,但通常都可以通过重新编译所有东西来排序。这次没用了。因此,我通过删除
elpa
目录并重新安装所有软件包对其进行了排序(在我的
.emacs
中,我有需要安装的软件包列表,如果缺少这些软件包,则需要重新启动emacs)。但这是一个相当激进的措施,我想知道是否有更干净的方法。