0

我已经在几台计算机上安装了 emacs,为了在它们之间同步配置,我设置了一个 github 存储库来存储我的 emacs 配置,即我的文件夹 ~/.emacs.d

现在,我开始在一台计算机上使用 emacs,我使用 MELPA 安装了某些软件包,比如说 package_foo。现在我的 .emacs.d/elpa 目录中有一个名为 package_foo 的文件夹。我还发现 package_foo 实际上托管在 github 上。如果我可以对它进行子模块,那就太好了,因为我的 .emacs.d 也在 github 上。

因此,如果我通过 emacs 包管理器安装的 package_foo 在 github 上,我该如何自动对其进行子模块而不是将其复制到我的 .emacs.d/elpa 文件夹中?是否有一个 emacs 插件知道 package_foo 的来源,并将它的子模块安装(如果可能)而不是提取所有文件?这样不仅可以节省 github 上的空间,还可以在同步时节省我的带宽。

4

1 回答 1

2

不要将子模块用于包。不要将包提交到您的存储库。

相反,将 Emacs 配置为自动为您安装缺少的包。您可以为此目的使用一些特殊功能:

(defun package-required (package) (unless (package-installed-p package) (package-install package))

(package-required 'magit)

或者您可以使用CartonCarton通过在文件中声明它们来管理您的包。然后,您可以使用 shell 命令carton install安装缺少的包,并carton update更新所有包。

于 2013-04-15T08:54:09.620 回答