Aquamacs重启冻结原因及无需删除SessionDesktop.el的解决办法
首先,你遇到的这个问题大概率是SessionDesktop.el文件损坏或包含异常会话数据导致的。这个文件是Aquamacs用来保存你上次退出时的会话状态的——比如打开的窗口布局、已加载的文件、甚至一些插件的运行状态。如果某次Aquamacs异常退出(比如崩溃、强制关闭),就可能导致这个文件写入不完整,或者保存了错误的状态数据,下次重启时Aquamacs读取这个文件就会卡住,进而冻结。
除了每次手动删除这个文件,还有这些更省心的解决办法:
禁用自动会话保存:如果你不需要重启时恢复之前的工作状态,可以在你的
init.el(或~/.emacs)里添加一行配置:(setq aquamacs-autosave-session nil),这样Aquamacs就不会再生成SessionDesktop.el文件,自然也就不会因为它出问题了。重置会话状态:不用手动删文件,直接在Aquamacs里按下
M-x(Alt+x),输入aquamacs-reset-session并执行,这个命令会清空当前的会话配置,下次重启时会自动生成一个干净的SessionDesktop.el。手动修复会话文件:如果不想丢失之前的会话信息,可以备份一份SessionDesktop.el后,用文本编辑器打开它,检查里面的内容——比如有没有指向不存在的文件路径、格式错乱的Elisp代码块,删掉这些异常部分后再重启Aquamacs。不过这个需要你懂一点Elisp基础,要是不确定的话,还是用前两种方法更稳妥。
升级Aquamacs到最新版本:有些旧版本的Aquamacs存在会话保存的bug,升级到最新稳定版可能就能解决这个冻结问题,同时还能获得其他功能修复和优化。
排查插件冲突:如果最近安装了新的窗口管理或会话相关插件,可能是它和Aquamacs的默认会话保存功能冲突了。你可以临时禁用所有第三方插件,重启Aquamacs看看是否还冻结,然后一个个重新启用插件,找到导致问题的那个,再更新插件或者调整它的配置。
内容的提问来源于stack exchange,提问作者simone

