在GNU Emacs中安装插件时,核心操作都依托于内置的package.el系统。如果只是把elisp文件手动扔进load-path,那只能算作复制粘贴,依赖解析和自动激活完全不会触发。正确流程是:先添加MELPA源,刷新包列表,然后通过交互界面或声明式配置来完成安装。升级和卸载也一样,需要在package-list-packages里标记好,最后按x才能真正执行。

启用MELPA源并刷新包列表
打开Emacs,按M-x,输入eval-expression回车,粘贴下面这行代码再回车:
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
这一步是必不可少的。GNU官方的ELPA仓库所收录的插件数量有限,像magit、evil、lsp-mode这些主流扩展,都依赖MELPA才能找到。如果不添加这个源,后续搜索关键包时就会直接落空。
操作完成后,你可以重启Emacs,或者执行M-x package-refresh-contents回车,等状态栏出现“Contacting host: melpa.org…”并结束,就可以使用了。
交互式安装单个插件
按M-x输入package-list-packages回车,进入包管理界面。
用C-s搜索目标插件名(比如magit),把光标停到那一行上。
按i标记安装 → 按x确认执行 → 等右下角提示“magit installed”。
注意:标记后必须按x才能真正安装,只按i不会生效。
批量安装多个插件
方法一:在package-list-packages界面里,用C-v/M-v翻页,对每个目标包重复按i标记,最后统一按x执行。
方法二:在配置文件~/.emacs.d/init.el里加上声明式安装代码,比如:
(use-package magit :ensure t :defer t)
(use-package evil :ensure t :init (evil-mode 1))
保存文件后执行M-x eval-buffer回车,Emacs会自动下载并激活这些包。
升级已安装的所有插件
第一步:按M-x package-list-packages回车。
第二步:按U(大写U)标记所有可升级的包。
第三步:按x执行升级。
这一步会覆盖旧版本文件,升级前务必确认当前配置能和新版本兼容,否则很可能导致某些mode失效。
卸载不再需要的插件
进入package-list-packages界面 → 光标移到待卸载的包名行 → 按d标记删除 → 按x执行。
卸载后,该包的autoload函数会从内存清除,但配置文件中对应的(require 'xxx)语句需要手动删掉,否则重启时Emacs会报错。
