我在几台计算机上安装了emacs,并在它们之间同步配置,我设置了一个存储我的emacs配置的github仓库,即我的文件夹〜/ .emacs.d
现在,我开始在一台计算机上使用emacs,我使用MELPA安装了某些软件包,比如package_foo。现在我的.emacs.d / elpa foder中有一个名为package_foo的文件夹。我还发现package_foo实际上实际上是在github上托管的。如果我可以对其进行子模块,那将是很好的,因为我的.emacs.d也在github上。
所以如果emacs包管理器安装的package_foo是在github上,我怎么能自动子模块化而不是将它复制到我的.emacs.d / elpa文件夹?是否有一个emacs插件知道package_foo的来源,并将其子模块用于安装(如果可能)而不是拉动所有文件?这不仅可以节省github上的空间,还可以在同步时节省带宽。
答案 0 :(得分:2)
不要将子模块用于包。不要将包提交到您的存储库。
相反,请将Emacs配置为自动为您安装缺少的软件包。您可以为此目的使用一些特殊功能:
(defun package-required (package) (unless (package-installed-p package) (package-install package))
(package-required 'magit)
或者您可以使用Carton来管理您的包,方法是在Carton
文件中声明它们。然后,您可以使用shell命令carton install
来安装缺少的软件包,并使用carton update
来更新所有软件包。