有两个 emacs。想要将 spacemacs 与一个一起使用,而另一个完好无损

问题描述 投票:0回答:4

我的机器上有 emacs24 和 emacs25。我想将 spacemacs 与 emacs24 一起使用并保留 emacs25...以及...作为 emacs。当我安装 spacemacs 时,我的 ~/.emacs 和 ~/.emacs.d 被更改。两个 emacs 都开始使用 spacemacs,这是我不想要的。有没有办法同时拥有 spacemacs 和 emacs?尝试寻找解决方案并找到了保留单独配置文件的解决方案。但是如何让 emacs 查找特定的配置文件。顺便说一句,如果你还没猜到的话……我是个菜鸟。

emacs spacemacs
4个回答
1
投票

在某种程度上,这是很容易做到的。然而,在另一个方面,可能会有一些 并发症,取决于您真正想做的事情。

Emacs 支持命令行开关 -l 来告诉 emacs 在哪里找到配置 文件。因此,从一个非常简单的角度来看,您可以创建两个包装器 脚本 my-spacemacs.sh 和 my-plainemacs.sh ,其中包含脚本 使用特定的 -l /path/to/config 调用 emacs。您可以通过$*来领取其他 如果需要的话可以使用命令行参数。

这种方法的潜在问题是 emacs 仍然会使用 .emacs.d 存储各种其他信息,包括可能的 elpa 包和 这可能会导致问题。为了更安全,还是把东西完整地保留下来 分离。

如果您不需要同时运行两个版本,简单的解决方案是 必须分隔目录,例如 ~/.spacemacs-emacs.d 和 ~/plain-emacs.d 然后有一个名为 .emacs.d 的符号链接,它指向 您想要运行的版本。这种方法的两个主要问题是 每当你想改变 emacs 风格时都需要重置符号链接 如果您想同时运行两个版本,这将不起作用。

我想我们真的需要了解您的实际用例 - 为什么您需要两个 不同的配置?了解这一点有助于找到更好的方法。

作为示例,我使用 org 模式和 babel 来管理我的 emacs 配置。我有一个 多个不同版本和一个我可以运行生成的简单脚本 我想要从不同的组织文件中选择哪个 init.el 文件。我有一个最小的.org 文件,它具有我可以裸露的最少 emacs 配置,并且我有我的 标准 init.org 生成我的工作 init.el 然后我有一个 Experimental.org 用于生成我使用的 init.el 文件 尝试新的配置或包。切换起来很简单 配置,但我永远不需要同时运行两种不同的配置 时间。

我经常喜欢查看一些其他预先准备好的 emacs 设置,例如 spacemacs、prelude 等,对于这些,我只需获取当前的 git 版本并使用 指向 .emacs.d 的符号链接,位于我想要的 git 存储库的根目录 进行实验。


1
投票

您还可以使用以下方法:

创建目录 ~/spacemacs。 将 spacemacs .emacs.d 提取/复制到 ~/spacemacs (这样它就是 ~/spacemacs/.emacs.d)。 创建一个名为 Spacemacs(或菜单项)的桌面链接并输入以下命令:

    HOME=$HOME/spacemacs emacs

您还可以使用此命令从 shell 启动 spacemacs。 这样,您可以同时运行 vanilla emacs 和 spacemacs,每个都有自己的配置目录和 elpa 存储库。 唯一的缺点可能是您需要向上更改目录级别才能到达真正的主目录,而不是通过变量设置的“假”目录。 顺便说一句,这就是我根据不同的东西的需要运行多个 emacs 版本和配置的方式。


0
投票

最好的解决方案似乎是使用 chemacs:https://github.com/plexus/chemacs


0
投票

Emacs 29 有一个新的命令行选项,

--init-directory [path]

这意味着您不需要任何外部软件包,例如 chemacs2

© www.soinside.com 2019 - 2024. All rights reserved.