在我看来,内置在Emacs 24上的新Package系统在正确加载和初始化已安装的软件包时存在一些缺陷.
最近,我升级到Emacs 24.1.1,它于2012年10月6日发布,我一直在尝试使用内置的软件包系统,并使用它安装了几个软件包,但它们都有类似的问题,与自动加载和初始化.
例如,我使用一个名为的包smex,它提供了使用M-x和弦的增强功能.它需要你定义一个键M-x,所以我添加(global-set-key (kbd "M-x") 'smex)到我的init.el文件中.但是在启动emacs之后我按下M-x和弦,我收到消息"符号的函数定义是无效的:smex" ...如果我也放入(require 'smex)我的init.el文件,我收到错误消息"文件错误:无法打开加载文件,smex "
将smex的位置添加到load-path变量使得它按预期工作,但是,这似乎打破了首先拥有包系统的整个目的......
有什么想法吗?有没有更好的方法,或者我们现在忍受这个限制?
我想在init.el文件中声明我想在emacs中使用的所有包.我想知道当我启动emacs而不通过列表并标记我要安装的那些时,是否有可能用例如MELPA加载缺少的包?