Spacemacs安装失败,提示"symbol's function definition is void which-key-declare-prefixes"

尝试多次,期间查询了多个帖子,避开了镜像坑,VPN坑,但最后这个始终跳不过去。

全网搜索并没有找到答案,有些建议删除.emacs.d文件夹后重来一次,试过了还是如此。

新手,请教各位如何解决,谢谢 :wave:

加了 --debug-init 后截屏如下

是由 which-key 这个 package 最近的一次 breaking change 导致的(之前已经 mark obselete 的 which-key-declare-prefixes,最近被删除了)。得等 spacemacs 官方更新 layer 相关的引用。

这里有个 Github issue 在 tracking: void-function which-key-declare-prefixes · Issue #319 · justbur/emacs-which-key (github.com)

作者给的一个 workaround 是在启动时执行:

(defalias 'which-key-declare-prefixes 'ignore)
(defalias 'which-key-declare-prefixes-for-mode 'ignore)

我加到 (dotspacemacs/user-config ...) 里面,至少可以启动起来了。虽然我这里还有些别的问题,不过应该是其它的包更新导致的。题主可以先试试这个 workaround 行不行,或者切到 spacemacs 的 developer 分支试试。

另外有个 reddit 贴子讨论,我是从这知道的根本原因: When I open Spacemacs I get an error and Spc doesn’t work. : spacemacs (reddit.com)

2 个赞

试了下,成了,非常感谢,拯救了我太多时间 :+1: :+1: :+1:

1 个赞

@mengqi 请教下,下图中的某些keymap显示为“+prefix”, 是因为“which-key-declare-prefixes”导致的嘛?

谢谢啦

这是正常的设计,有意为之,意思是又绑定了一组快捷键,你试试按一下a就明白了。

1 个赞

明白了,谢谢哈