Emacs 的功能可以通过第三方软件包进行扩展。官方支持使用内置的软件包管理器 package.el
,不过 Emacs 社区成员还编写了其他一些软件包管理器。package.el
依靠变量 package-archives
查找软件包。默认情况下,这包括 Emacs Lisp Package Archive (ELPA)。M-x list-packages
将创建一个缓冲区,列出 Emacs 知道的所有软件包。手册((info "(emacs) Packages") )包含更多信息。
可以添加第三方软件包存档。其中使用最广泛的是 MELPA。
许多流行的扩展以软件包的形式出现在官方软件仓库中,更多的扩展则通过AUR提供。这些软件包的名称通常带有 emacs- 前缀(例如 emacs-lua-mode包),但也不总是如此(例如 auctexAUR)。
有些软件包可能需要修改配置文件才能激活,以便在 Emacs 会话中使用其功能。例如,如果安装了 auctexAUR,则需要在配置文件中添加
(load "auctex.el" nil t t) (load "preview-latex.el" nil t t)
到配置文件中。其他软件包会在源代码的注释部分或 README 中告诉你如何激活它们。
软件镜像源
中国大陆用户可能会需要 ELPA 镜像站以加速软件包下载。
校园网联合镜像站列出了国内已知许多 ELPA 镜像。
对于大多数镜像源,需要设置 package-archives
。比如用北京外国语大学开源软件镜像站提供的 GNU ELPA 和 MELPA 镜像:
(setq package-archives '(("gnu" . "https://mirrors.bfsu.edu.cn/elpa/gnu/") ("nongnu" . "https://mirrors.bfsu.edu.cn/elpa/nongnu/") ("melpa" . "https://mirrors.bfsu.edu.cn/elpa/melpa/"))) (package-initialize) ;; 您的配置文件里可能已经有了这一行
浏览各镜像站帮助页面以获取详细信息。
use-package
自 Emacs 29.1 起,use-package 已随 Emacs 一起提供。use-package 宏允许你以声明的方式在启动文件中设置软件包自定义。它可以帮你处理许多原本需要大量重复模板代码的事情。它可以帮助进行常见的自定义,如绑定键、设置钩子、自定义用户选项和 face、自动加载等。它还能帮助你保持 Emacs 的启动速度,即使你使用了很多(甚至上百个)软件包。
请注意,use-package 并不是软件包管理器。尽管 use-package 具有与 Emacs 软件包管理器接口的实用功能,但它的主要用途是帮助配置和加载软件包,而不是管理软件包的下载、升级和安装。
更多信息,请参阅 Info 手册 “(use-package) Top”(在线阅读:https://elpa.gnu.org/devel/doc/use-package.html )。