2

我总是对 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 安装软件包?

4

1 回答 1

0

Emacs(默认)自动加载(几乎)所有表单的文件~/.emacs.d/elpa/*/*-autoloads.el。该软件包<pkg>-autoloads.el将包含或多或少相当于您的“添加到列表 + 要求 + ...”。

于 2018-02-13T01:53:05.253 回答