平时几乎不用 yas , 最近发现了一个更轻量级的 tempel 就决定改用它了。鼓捣了一下配置之后,顺手把 elpa/ 删了,打算把所有包的重新安装一下。
然后重启 emacs 安装包的时候傻了,报了一大堆依赖错误,很多八杆子打不着的包都说找不到 yasnippet,比如 vterm, magit, jinx 之类的。类似的问题以前在用 doom 的时候也遇到过,当时重启几次把中断的安装进程继续下去一般就会神奇地好了。然而我重启了几次之后虽然没弹 error 了,但是在执行某些命令的时候都会出现奇怪的错误,比如第一次执行 list-packages
居然会提示创建一个莫名其妙的文件。
于是去看 *message*
buffer,果然有一堆错误,一连串的包安装之后居然没有生成 autoloads 文件。于是决定去二分 init.el
,结果连这也打不开了,提示找不到 yasnippet??
谜底揭晓
debug-on-error
之后才发现是 lsp-bridge 的 prog-mode 钩子的问题,之前我以为用 (setq acm-enable-yas nil)
就不使用 yasnippet 了。在安装包之后生成 autoloads 文件时会触发 lsp-bridge ,然而它依赖 yas 于是就导致创建失败,这就导致了各种各样奇特的错误。