Fel*_*e84 7 emacs configuration homebrew emacs-prelude
我经常遇到以下流行的emacs版本:
目前我正在运行自定义配置,但我想试试这些版本而不会破坏我的当前版本~/.emacs.d.
这是我当前安装的一些背景知识:
我通过Homebrew安装了Emacs,所以它位于:/usr/local/Cellar/emacs/HEAD/Emacs.app
我目前的emacs版本是:
GNU Emacs 24.3.50.1 (i386-apple-darwin13.0.0, NS apple-appkit-1265.00)
基本上,这是我想知道的:
在这些构建和我当前的自定义配置之间切换的最简单方法是什么?
鉴于我目前的设置,是否可以启动多个emacs会话,每个会话都有各自的配置/缓冲区?
小智 8
你可以用符号链接~/.emacs.d,这就是我的工作
1)尝试保持我的emacs配置,~/.emacs.d即所有配置文件应该存在于该文件夹中.例如我使用workgroups2,默认情况下它存储工作组配置,~/.emacs_workgroups但我已将其配置为存储配置~/.emacs.d/workgroups,因此我的整个emacs配置只在一个文件夹中.
2)然后我有一个~/emacs_configs文件夹,其中所有配置文件夹(基本上是一个带有init.el和其他配置的文件夹)存在,所以我的个人配置文件夹将是~/emacs_configs/iqbal,一个前奏分发将在~/emacs_configs/prelude
3)然后我最后将符号链接~/.emacs.d到我实际想要使用的配置,例如.使用我的配置,我会做ln -s ~/emacs_configs/iqbal .emacs.d.如果要尝试某些配置,只需将配置文件夹复制到~/emacs_configs/whatever_name并更改符号链接
希望这可以帮助
(编辑:我已将此方法包装到我已添加到EmacsWiki的shell脚本中.)
我倾向于使用$HOME环境变量:
首先将"分发"(为了缺少更好的术语)复制到目录的子目录中.emacs.d,该目录将用作$HOME该分发的替代品.即/path/to/(distribution)/.emacs.d:
$ git clone https://github.com/bbatsov/prelude.git ~/emacs/prelude/.emacs.d
$ git clone https://github.com/overtone/emacs-live.git ~/emacs/emacs-live/.emacs.d
Run Code Online (Sandbox Code Playgroud)然后,您可以使用env在HOME本地为该命令设置环境变量来启动emacs :
$ env HOME=$HOME/emacs/prelude emacs
$ env HOME=$HOME/emacs/emacs-live emacs
Run Code Online (Sandbox Code Playgroud)它们不应该相互交互,因此您可以一起运行它们并拥有多个并行的emacs实例,每个实例使用不同的配置.
我看到石墨烯实际上是一个ELPA包,所以它没有init.el文件,需要通过包管理器安装; 但你仍然可以使用相同的技术将它安装在一个单独的干净配置中:只需创建一个类似的目录结构,然后创建一个init.el文件(例如~/emacs/graphene/.emacs.d/init.el)包含石墨烯安装说明中的代码,然后运行emacs(例如env HOME=$HOME/emacs/graphene emacs),并完成安装说明的其余部分.
这种技术的缺点是Emacs不会看到你所有的其他点文件(因为它会查看$HOME),因此从Emacs中运行其他进程不一定正常工作; 但是,如果您只是进行实验,那么这不太可能成为一个大问题,您可以随时对所需的位进行符号链接或复制.
你甚至可能更喜欢它 - 好处是,如果你正在试验的分发中的任何东西将文件写入主目录,它就不会破坏你的真实文件.
当将Emacs升级到新版本时(如果您可以同时运行旧版本和新版本),这也可能是一种有用的方法,因为您可以设置现有配置的副本以用于新的Emacs,直到您'确信一切正常,您可以编辑新配置,而不会有破坏现有配置的风险.或者翻转它,而是将原始配置保留在新的/备用位置,以防您需要它作为备份.
小智 5
我创建~/.emacs.1.d/init.elfile ,并给它内容:
(setq user-emacs-directory "~/.emacs.1.d/")
Run Code Online (Sandbox Code Playgroud)
然后,像这样启动 emacs emacs -q -l ~/.emacs.1.d/init.el,现在 emacs 使用了新的配置。
成功!!
-q is 意味着跳过默认配置 ~/.emacs.d/init.el-l 是意味着加载新配置 | 归档时间: |
|
| 查看次数: |
3318 次 |
| 最近记录: |