在最近了解了有关信息之后,use-package
我决定将配置移植到该配置中,但发现自己不愿意放弃使用package.el
安装软件包并保持更新的便利。我发现将use-package
和结合起来有点棘手package.el
。
我通常对学习人们如何use-package
与package.el
系统结合感兴趣,但是对于更具体的问题,请继续阅读。
这就是我想要的:
- 要由软件包管理器安装软件包,以便我可以轻松浏览软件包并通过进行更新
list-packages
。 - 要通过专门配置和加载程序包
use-package
,因此我可以轻松地在init文件中准确查看正在加载的内容以及配置方式。 - (可选)我也希望能够通过
use-package
的:ensure
关键字安装软件包。
如果我正确理解的话,我几乎package-initialize
不需要做什么,基本上只希望它设置的方式load-path
。目前,我的配置中包含以下内容:
;(package-initialize)
(setq package-enable-at-startup nil)
(let ((default-directory "~/.emacs.d/elpa"))
(normal-top-level-add-subdirs-to-load-path))
(require 'use-package)
第一行带有注释,因此Emacs 25不会(package-initialize)
对我的init文件添加帮助。有位normal-top-level-add-subdirs-to-load-path
是一种近似什么package-initialize
会使load-path
,这似乎是足够好的近似。
这似乎实现了我的愿望1和2,但没有达到3。如果尝试使用:ensure
,则会收到一条错误消息,指出package.el
未初始化。调用package-initialize
可以解决该问题,但是我希望避免这种情况,因为a)我不想加载所有无数的自动加载程序(我更喜欢使用它use-package
来精确创建所需的自动加载程序),以及b)我希望能够轻松避免在需要时加载某些已安装的软件包(使用即可轻松完成use-package
)。
有没有人建议如何做?
package-initialize
它来解决我的问题。