我总是对 Emacs 中包的加载过程很好奇。要知道,有些包是内置包,有些是第三方包。
例如,您可以从 MELPA 或 MELPA-STABLE 安装“自动完成”包,或者您可以从github获取源代码。
如果您从 MELPA 安装包,您将在“~/.emacs.d/elpa/auto-complete***”中找到包文件。
auto-complete-autoloads.el
auto-complete-config.el
auto-complete-config.elc
auto-complete.el
auto-complete.elc
auto-complete-pkg.el
dict;;it's a directory
emacs 为我们安装包做了什么?它只是从 MELPA 下载所有文件并将它们放入“~/.emacs.d/elpa/auto-complete***”?下次启动emacs时,emacs如何知道auto-complete-package的存在并加载它们?
我知道如果从 github 获取源代码,我应该在“~/.emacs.d/init.el”中添加一些内容。也许像这样
(add-to-list 'load-path "path-to-download-folder/auto-complete")
(require 'auto-complete-config)
(ac-config-default)
但是如果我从 MELPA 安装软件包,我看不到“init.el”的任何变化。也许 emacs 将自动完成的路径分配给变量 load-path。但是之后?
emacs 是如何加载包的?它怎么知道我的“ALT-x + 命令”?
而且我真的不知道这些从MELPA下载的emacs文件和它们的功能之间的关系。谁能告诉我包裹的整个加载过程?emacs 在我们后面做什么来从 MELPA/MELPA-STABLE 安装软件包?