为什么要把spacemacs的配置放到.emacs.d中?

我看子龙山人的视频,是把spacemacs的配置clone到了.emac.d目录中,把.spacemacs改名为init.el保存在.sapcemacs,d目录中,有点搞不清楚这些目录的关系,可不可以都放在.spacemacs.d目录中?

如果不这样而是把spacemacs本身放在.emacs.d之外的目录,要让emacs启动时变成spacemacs,就要进行下列之一:

  • 在emacs的启动参数中指定那个目录
  • ~/.emacs.d/init.el中写elisp声明load那个目录的文件

无论是哪一种,对于想尝试spacemacs的小白用户来说,肯定不如clone到.emacs.d这个指令来得简单明确(相应的代价只是“用户在加自己配置的时候不能写在.emacs.d里,要写.spacemacs.d”,which并不大)

还有一点,Spacemacs用的还是“启动后加载配置并自动安装packages“的安装方法。

相反地,其实doom-emacs使用的make安装就可以做到克隆到任意目录安装,因为对于doom-emacs的用户来说并没有明显的区别。只是开发者写Makefile的时候要多写点。

另外~/.spacmeacs.d/init.el~/.emacs.d/init.el不是一个东西。前者是对spacemacs的配置,后者是对emacs的配置。

Spacemacs虽然自称自己是"A community-driven Emacs distribution", 但是并未和Emacs一起发布,所以它仍然是一份Emacs配置。请理解这一点。

1 个赞

嗯嗯,理解了,spacemacs只是emacs的一份配置,emacs在启动的时候首先在根目录下查找.emacs 或 .emcas.d/init.el文件,加载emacs配置,然后再查找 .spacemacs 或 .spacesmacs.d/init.el 加载spacemacs的配置。.emacs.d中的整个spacemacs的配置,而.spacemacs.d中是自定义的个性化的spacemacs的配置,可以对layer进行安装,变量修改或者删除不必要的packages等。