我想在同一台PC上的同一用户帐户上同时维护多个emacs配置,例如emacs-prelude,emacs-starter-kit和我自己的自定义emacs配置。
因为我有安装目录,如.emacs1.d,.emacs2.d,.emacs3.d。
每个emacs用户目录都有一个init.el文件,应该在启动时加载。而不是.emacs文件,我更喜欢使用init.el文件。
如何加载这些自定义配置目录?
我尝试了emacs --eval '(setq user-emacs-directory "~/.emacs1.d/")'
它只设置user-emacs-directory的值,但不从中加载文件
答案 0 :(得分:6)
我会尝试像
这样的东西emacs -q --eval '(load-file "~/.emacs1.d/init.el")'
然后你会在init.el文件的开头做一些事情:
(setq user-emacs-directory "~/.emacs1.d/")
(或者您也可以将两者都作为命令行参数进行评估)
答案 1 :(得分:2)
或者,您可以使用单个〜/ .emacs或init.el文件,并选择要加载的配置目录。
(defvar *emacs-prelude-enabled* t)
(defvar *emacs-starter-enabled* nil)
(defvar *other-config-enabled* nil)
(cond (*emacs-prelude-enabled*
(add-to-list 'load-path "~/.emacs1.d/")
(load "~/.emacs1.d/init.el"))
(*emacs-starter-enabled*
(add-to-list 'load-path "~/.emacs2.d/")
(load "~/.emacs2.d/init.el"))
(*other-config-enabled*
(add-to-list 'load-path "~/.emacs3.d/")
(load "~/.emacs3.d/init.el")))
答案 2 :(得分:2)
如果你想从控制台调用一些东西,我会把它放在.bashrc:
中export emacs1=~/.emacs1.d/init.el
export emacs2=~/.emacs2.d/init.el
export emacs3=~/.emacs3.d/init.el
然后像这样调用它们:
emacs -q -l $emacs1
emacs -q -l $emacs2
emacs -q -l $emacs3
你甚至可以在$ sign后用bash完成。
你甚至可以为这些东西添加别名:
alias emacs1='emacs -q -l ~/.emacs1.d/init.el'
alias emacs2='emacs -q -l ~/.emacs2.d/init.el'
alias emacs3='emacs -q -l ~/.emacs3.d/init.el'
然后像这样调用它们:
emacs1
emacs2
emacs3
当然,
(setq user-emacs-directory "~/.emacs1.d/")
仍然必须在每个init.el
。
答案 3 :(得分:1)
作为的nik及其评论answer的延伸,最后我做了以下事情:
load-path
我注意到的一件事是,如果您使用here这样的内容,它会失败,因为它所寻找的不是user-emacs-directory
而是load-path
。此外,将load-path
放入spacemacs文件夹会使Emacs抱怨.emacs.d
有MomentDateAdapter
个文件,这会导致问题。
答案 4 :(得分:1)
/home/user/.emacs.d.vanilla
init.el
,并在其中复制以下两行。这些行将告诉Emacs将新的init.el
视为主要配置文件,并将其文件夹视为主要配置文件夹:(setq user-init-file (or load-file-name (buffer-file-name)))
(setq user-emacs-directory (file-name-directory user-init-file))
现在像这样启动emacs:
emacs -q -l /home/user/.emacs.d.vanilla/init.el
-q
-跳过默认的~/.emacs.d/init.el
。 -l
-加载特殊的init.el
,该信息告诉Emacs新的init文件夹和init文件的位置。答案 5 :(得分:0)
chemacs
是一款用于管理多个Emacs配置的软件。参见https://github.com/plexus/chemacs。
答案 6 :(得分:0)
从几种配置中选择符号链接可能很棒。参见https://stackoverflow.com/a/21568966/5128179。