什么是打包Emacs安装(包和配置)的最佳方式,以便可以在任何地方快速安装?
我通常通过登录到远程机器(通常是AWS)来编写代码。我有一个相当大的使用包列表和一个相当大的.emacs.el。虽然我可以在任何远程机器上快速安装emacs,但我正在寻找一种方法来“打包”我的emacs并将其存放在某个地方,以便我可以在登录到的任何机器上快速安装它。最好的方法是什么 首先,您显然要将所有内容捆绑到源代码管理中(除了私有文件)。Bitbucket并提供私人回购 您可以查看如何在init文件中列出所有需要的包。(这实际上是前奏曲中使用的) 然后我看到了一些选择 使用木桶 有些用于管理包依赖关系,有些不用于管理包依赖关系 Cask文件列出了所有依赖项:什么是打包Emacs安装(包和配置)的最佳方式,以便可以在任何地方快速安装?,emacs,Emacs,我通常通过登录到远程机器(通常是AWS)来编写代码。我有一个相当大的使用包列表和一个相当大的.emacs.el。虽然我可以在任何远程机器上快速安装emacs,但我正在寻找一种方法来“打包”我的emacs并将其存放在某个地方,以便我可以在登录到的任何机器上快速安装它。最好的方法是什么 首先,您显然要将所有内容捆绑到源代码管理中(除了私有文件)。Bitbucket并提供私人回购 您可以查看如何在init文件中列出所有需要的包。(这实际上是前奏曲中使用的) 然后我看到了一些选择 使用木桶 有些用于管理
(depends-on "cask")
(depends-on "dash")
(depends-on "evil")
使用组织模式
有些人在org模式下编写配置,并通过调用org babel加载配置,这可以在~/.emacs.d/init.el
中的一行中实现:
(require 'org)
(require 'ob-tangle)
(org-babel-load-file (expand-file-name "~/.emacs.d/myemacs.org"))
将配置拆分为多个文件
有些人将其拆分为多个elisp文件
以下是一些值得借鉴的优秀配置:
- Noahfredrick使用组织模式和容器:
- Purcell使用多个elisp文件,其中每个文件都需要所需的软件包:
init elpa.el
中,他定义了一个函数,该函数接受参数中的包,并在包不存在时安装它:
(defun require-package (package &optional min-version no-refresh)
"Install given PACKAGE, optionally requiring MIN-VERSION.
If NO-REFRESH is non-nil, the available package lists will not be
re-downloaded in order to locate PACKAGE."
(if (package-installed-p package min-version)
t
(if (or (assoc package package-archive-contents) no-refresh)
(package-install package)
(progn
(package-refresh-contents)
(require-package package min-version t)))))
在每个文件中,他都使用:
(require-package 'dired+)
同时提交已安装的软件包
为了更快地安装配置,您也可以将已安装的软件包添加到源代码管理中。这样,您还可以确保具有相同的环境。我始终建议将整个
~/.emacs.d
置于版本控制之下,包括所有软件包和其他库
这有点麻烦,也可能有点混乱,但是如果您想保证每次在新的地方安装时配置的状态,您需要有一个完整的副本
使用版本控制是我的首选,因为这使得恢复对包的更改变得很简单,等等。因此,如果您升级了一个包,而Emacs出现故障,那么只需一步就可以恢复原来的状态(并且这样做不需要您记住它们是怎样的)
使用这种方法,克隆单个存储库的行为是获得处于已知状态的工作系统所需的全部;而且它将您对远程源的可用性、一致性和永久性的依赖性限制在一个存储库中(如果您在本地拥有它,甚至随身携带一个副本,那么您根本就没有远程依赖性)
也就是说,很多人都不麻烦,也没有遇到任何问题,所以对大多数人来说这不是一个关键点。检查
在usb记忆棒上创建您自己的存储库,它是稳定的,因为所有软件包版本都是您已经使用了很长时间的版本
这是最快的方法,基本上你可以在1分钟内在任何一台机器上完成设置。如果你能稍微澄清一下你所说的“任何”计算机是什么意思,那会很有帮助。听起来机器上已经安装了emacs,您只需要配置emacs以使用您的软件包和设置。您是否可以通过物理访问机器或网络从记忆棒加载文件?如果没有,您可以访问云存储吗 我自己的设置如下所示: 我在工作时有一台Windows7机器,在家里有LinuxMint。 我有一个dropbox帐户,它保存我的所有emacs配置文件和包。此dropbox帐户已同步到每台计算机上的本地文件夹,每台计算机上的my.emacs文件只有一行: (加载文件“~/Dropbox/dotemacs.el”) 我经常调整包文件和配置。使用dropbox可使我的设置在所有计算机上保持同步 如果您无法安装Dropbox,您可以手动同步到git之类的云存储。正如《我的回购自述》所说,将您的
~/.emacs.d
内容推送到github和目标机器上同样简单:
brew安装emacs--HEAD--use git HEAD--cocoa--srgb
适用于我和我的盒子和服务器。A.不要使用.emacs,使用.emacs.d/init.el。B.将.emacs.d托管在github、bitbucket等上。C.我建议使用
use package
它将允许您配置和自动安装软件包。我有这样的配置设置。我需要在一台新机器上做的就是克隆my.emacs.d并启动emacs。在第一次启动时,所有my软件包都将通过use package自动安装和编译。这里有一些很好的答案。根据你的需要,大量使用酒精也可能有所帮助。不要在每台机器上安装Emacs,而是在本地机器上安装Emacs,并通过SSH、FTP、Windows共享、sudo
等或上述组合远程编辑文件。还支持多跳。