我希望在同一台pc上的同一用户帐户上同时维护多个emacs配置,如emacs-prelude、emacs-starter-kit和我自己的自定义emacs配置。
为此,我有像.emacs1.d,.emacs2.d,.emacs3.d这样的设置目录。
每个emacs用户目录都有一个应该在启动时加载的init.el文件。我更喜欢使用init.el文件,而不是.emacs文件。
如何加载这些自定义配置目录?
我试着运行emacs --eval '(setq user-emacs-directory "~/.emacs1.d/")'
它只设置user-emacs-directory的值,但不加载其中的文件
发布于 2013-07-05 16:08:47
我会尝试像这样的东西
emacs -q --eval '(load-file "~/.emacs1.d/init.el")'然后,您可以在init.el文件的开头执行以下操作:
(setq user-emacs-directory "~/.emacs1.d/")(或者,您也可以将这两个内容都求值为命令行参数)
发布于 2013-07-05 22:15:56
或者,您可以使用单个~/.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")))发布于 2013-07-09 01:34:58
如果你想从控制台调用一些东西,我会把它放在.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你甚至可以在$符号之后的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中。
https://stackoverflow.com/questions/17483598
复制相似问题