一个容易让人ft的错误,就是覆盖了系统的初始化elisp文件。
我总是把我自己的 site-lisp 和 config 目录放在 load-path 开头。后来我把我的键盘绑定都放在 config 目录下的 bindings.el 文件里。
有一天我发现,我不经常用到的一个系统键绑定不起作用。我很 久都不明白怎么回事。后来才恍然大悟,原来 emacs 的系统 lisp 目录里本来有一个叫 bindings.el 的文件。我把 config 目录放在 load-path 开头,结果系统的文件没有被读入!
同样的错误后来发生在 gnus.el 和 macros.el。在我起动 gnus 和执行 M-x name-last-kbd-macro 的时候出现"Autoload failed to define function XXX" 之类的错误。如果出现这样的问题, 应该检查你的文件是否与系统文件重名!
一个可靠的防止这种错误的办法就是,在你自己的el文件前面加 上前缀,比如你的名字。我的配置文件全部都以 "wy-" 开头。