spacemacs 丢失 major-mode-cmd prefix

又遇到了灵异事件,我的一个 project 内的 org 文件没法按 , (逗号)调出 major mode command,除了这个 org 文档之外的其它 org 文件都可以正常调出菜单,我不报期望能碰到有相同问题的 spacemacs 用户,但是希望论坛里的高手能教教我怎样处理这种灵异的丢失按键绑定问题。

下面两个截图说明我的问题:

正常情况 在别的 org buffer 中按空格键调出的菜单:

异常情况 在这个特定的 org buffer 中按空格键调出的菜单:

注意和上面的截图相比,少了一项 major-mode-cmd(箭头所指的位置)

上面截图是在同一个 emacs 进程(GUI)下截的图。并且即使我把有问题的 buffer 关闭再重新打开,问题依旧存在。打开别的 org buffer 则不存在上述问题。

好吧,找到问题的关键了,原因是这个 org 文件为了导出到 html 的效果,采用了 readtheorg 主题,然后 org 文件中包含这一句:

image

不知道和哪里冲突了,然后导致这个问题。删掉这一句就好了。

这个问题在我更新 org 之前是没有的,但我很久没有更新 org 了,还有其它包也是最近更新的,所以不确定是哪个更新导致了这个问题。

还有一点值得注意的是,当这个问题出现时,这个 org buffer 中的 org-indent 也失效了。真的是很奇怪。

好吧,我一直没有注意到 minibuffer 中打开 buffer 时其实有出错信息,最终找到真正的原因是 org babel 无法加载 ob-ein 语言造成的。我之前添加的时候好像能用,不知道什么时候 ein 又升级了,不能用了?

总结一下解决方法:出现这种灵异事件时,最好将 debug-on-error 打开,然后重新打开文件,查看出错信息寻找对策。

1 个赞