1 课程回顾 🔗
通过上节课的学习,我们了解到如何在 Emacs 里查阅单词,我们也可以通过 Org mode 的 Capture 机制来记录我们遇到的生词,时不时地看一看,温故而知新。
这节课,我们来学习如何管理多套 Emacs 配置。
2 场景描述 🔗
相信不少人会有类似下面这样的需求:
- 日常使用时用一个主力配置的 Emacs,完成所有主要任务;
- 在终端或者个别场景,用另外一个配置的 Emacs,核心在于更短的启动速度以及只加载一些核心插件;
- 一个配置使用
straight.el
来管理包,另外一个配置使用package.el
来管理包; - 临时需要启动一个不加载任何第三方包,但需要加载一些个性化配置的最小配置;
这就需要我们能在一台电脑上,随时根据需要,启动不同环境的 Emacs。
例如,我自己就有如下5个环境:
- default: 默认的完整配置
- mini: 只加载核心插件的配置
- package: 使用
package.el
来进行包管理的配置 - q: 不加载任何第三方插件的最小配置
- scratch: 本教程配套的配置
3 chemacs2 🔗
我们通过 chemacs2 这个项目来达成这个目标。
3.1 安装chemacs2 🔗
3.1.1 第一步:将当前emacs配置目录改名 🔗
如果你是按照本系列教程来进行配置管理的话,你的配置文件目录为: ~/.emacs.d
,那我们需要将这个目录改一下名字,假设我们修改之后的目录为: ~/.emacs.d.default
:
mv ~/.emacs.d ~/.emacs.d.default
3.1.2 第二步:克隆此项目 🔗
git clone https://github.com/plexus/chemacs2.git ~/.emacs.d
3.1.3 第三步:创建 ~/.emacs-profiles.el
🔗
创建 ~/.emacs-profiles.el
文本文件并填入如下内容,这段内容可以简单理解为:
- default: 是这个配置的名称
- 后面这个是
default
这个配置所在的目录
(("default" . ((user-emacs-directory . "~/.emacs.default"))))
3.1.4 第四步:启动 🔗
我们通过以下命令启动 default
这个配置的 Emacs:
emacs --with-profile default
3.2 新增新的环境 🔗
3.2.1 第一步:新建新环境所在的目录 🔗
假设我们需要新建一个环境 scratch
,第一步就是新建一个目录来装这个环境的相关配置文件,假设我们的文件夹是 ~/.emacs.d.scratch
:
mkdir ~/.emacs.d.scratch
3.2.2 第二步:编辑 ~/.emacs-profiles.el
文件 🔗
我们在 ~/.emacs-profiles.el
文件里添加 scratch
环境的配置:
(("default" . ((user-emacs-directory . "~/.emacs.d.default")))
("scratch" . ((user-emacs-directory . "~/.emacs.d.scratch")))
)
3.2.3 第三步:配置 scratch
环境 🔗
我们在 ~/.emacs.d.scratch
文件夹下,具体配置 scratch
这个环境,这个过程跟你单独配置一个全新的 Emacs 类似。拿我的目录为例,结构大概如下:
/Users/randolph/.emacs.d.scratch
├── README.org
├── config-mirror
├── early-init.el
├── elpa
├── emacs-config.org
├── etc
├── init.el
├── lisp
├── quelpa
├── reveal.js
└── var
8 directories, 4 files
你可以在这个目录下写 scratch
这个环境的配置,它不会影响你的 default
以及其他的环境。
3.2.4 第四步:启动 scratch
环境 🔗
我们通过下面的命令来启动 scratch
环境的 Emacs:
emacs --with-profile scratch
然后 Emacs 会以 ~/.emacs.d.scratch
目录下的配置来启动 Emacs,安装相应的插件。你相当于拥有了一个区别于 default
的一个单独的环境。
3.3 删除环境 🔗
删除环境就更加简单了,直接删除相应环境的配置目录以及在 ~/.emacs-profiles.el
里的配置行即可。
4 结语 🔗
通过今天的课程,我们学习了如何在 Emacs 里管理多套配置,你可以通过 chemacs2
来按照需要,在一台电脑上启动不同环境的 Emacs 配置来达到不同的目的。我们甚至可以将 emacs --with-profile default
配置为一个 alias
,这样启动将更加方便。
通过这个方法,我们可以创建一个不包含任何第三方插件的配置,方便我们安装和调试新的插件,完全不影响你的主力配置,也不会在你的主力配置文件夹下写入任何数据,不同环境的数据完全隔离。
恭喜你,又前往进了一大步!