在Emacs 24内置的新打包系统中,当正确加载和初始化安装的软件包时,似乎存在一些缺陷。
最近,我升级到了发布于2012年6月10日的Emacs 24.1.1版本,并尝试使用内置的软件包系统,并使用它安装了几个软件包,但它们都有与autoload和初始化相关的类似问题。
例如,我使用一个名为smex
的软件包,它提供了增强M-x
命令的功能。 它要求您为M-x
定义一个键,因此我在我的init.el
文件中添加了(global-set-key (kbd "M-x") 'smex)
。 但是,在启动emacs后,我按下M-x
组合键,然后收到消息"Symbol's function definition is void: smex"...如果我还在我的init.el文件中添加(require 'smex)
,则会收到错误消息"File error: Cannot open load file, smex"
将smex的位置加入load-path变量使其正常工作,但这似乎违背了首先拥有软件包系统的初衷...
有什么想法吗? 还有更好的方法,或者我们暂时接受这种限制吗?
require
它们(反过来又可以提高启动时间)。没有自动加载的软件包仍然需要被require
(或以任何方式加载)。 - phils