更新后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)。但这是一个相当激进的措施,我想知道是否有更干净的方法。