什么是打包Emacs安装(包和配置)的最佳方式,以便可以在任何地方快速安装?

什么是打包Emacs安装(包和配置)的最佳方式,以便可以在任何地方快速安装?,emacs,Emacs,我通常通过登录到远程机器(通常是AWS)来编写代码。我有一个相当大的使用包列表和一个相当大的.emacs.el。虽然我可以在任何远程机器上快速安装emacs,但我正在寻找一种方法来“打包”我的emacs并将其存放在某个地方,以便我可以在登录到的任何机器上快速安装它。最好的方法是什么 首先,您显然要将所有内容捆绑到源代码管理中(除了私有文件)。Bitbucket并提供私人回购 您可以查看如何在init文件中列出所有需要的包。(这实际上是前奏曲中使用的) 然后我看到了一些选择 使用木桶 有些用于管理

我通常通过登录到远程机器(通常是AWS)来编写代码。我有一个相当大的使用包列表和一个相当大的.emacs.el。虽然我可以在任何远程机器上快速安装emacs,但我正在寻找一种方法来“打包”我的emacs并将其存放在某个地方,以便我可以在登录到的任何机器上快速安装它。最好的方法是什么

首先,您显然要将所有内容捆绑到源代码管理中(除了私有文件)。Bitbucket并提供私人回购

您可以查看如何在init文件中列出所有需要的包。(这实际上是前奏曲中使用的)

然后我看到了一些选择

使用木桶 有些用于管理包依赖关系,有些不用于管理包依赖关系

Cask文件列出了所有依赖项:

(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和目标机器上同样简单:

  • 使用自制软件安装emacs(很可能是在OS X上)
    brew安装emacs--HEAD--use git HEAD--cocoa--srgb
  • Git将您的回购克隆到~/.emacs.d/
  • 引导emacs
  • 如果有魔法的话,那就是使用内置的包管理器和ELPA和marmalade,并检查包是否安装了,如果没有,就安装它们


    适用于我和我的盒子和服务器。

    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
    等或上述组合远程编辑文件。还支持多跳。