spacemacs的加载次序

spacemacs适用版本介于24.4和24.5之间,重点解决了以下几个问题

  • 利用package包管理器,下载扩展非常方便,几乎不需要手工操作

  • 用户不需要直接安装package,而是为特定场景创建layer,一个layer可以包含多个package,以及独立的键盘配置

  • package默认autoload延迟加载扩展,所以spacemacs默认100多个layer(400+ packages)启动时间在5~20秒之间

  • 基于evil,同时提供vi按键,强大的Leader键

  • 基于helm,projectile,undo-tree等等一系列强大扩展,spacemacs真正做到了简单强大


由于官方文档对于layer执行顺序以及执行时机描述较为简略,于是我做了一些测试,创建两个layer,privilege-a和privilege-b,下面是测试结果:

"privilege-b/funcs.el" 
"privilege-b/config.el" 
"privilege-a/funcs.el" 
"privilege-a/config.el" 
"privilege-b/extensions.el" 
"privilege-a/extensions.el" 
"privilege-b/init-slime" 
"privilege-a/init-slime" 
"privilege-b/post-init-slime" 
"privilege-a/post-init-slime" 
"privilege-b/init-speedbar" 
"privilege-a/init-sr-speedbar" 
"privilege-a/init-sr-speedbar use-package :init" 
"privilege-b/init-sr-speedbar" 
"privilege-a/post-init-sr-speedbar" 
"privilege-b/keybindings.el" 
"privilege-a/keybindings.el" 
"privilege-a/init-sr-speedbar use-package :config"
  • 无论privilege-a和privilege-b在dotspacemacs-configuration-layers中次序如何,总是privilege-b先行加载,这是个悲伤的结论,意味着我们想创建一个layer覆盖内置layer部分配置的想法破灭了。

  • spacemacs优先加载每个layer下面的funcs.el和config.el,因此你不应在这两个文件中配置package信息,因为package还没有加载(要等到use-package :init)

  • 如果你想对一个package做一些扩展,比如利用package中的函数定义新的函数,那么应该将你的函数定义在layer/post-init-package中,

  • :init优先于:config

  • keybingdings.el处于一个奇怪的位置,我在里面定义package函数键绑定时,提示package未加载,看来还是要在use-package :init中定义

  • slime始终在sr-speedbar之前加载,无视我在代码中的书写顺序

    2015年6月13日更新:

  • 以上测试的结果不代表spacemacs的核心机制未来不会改变

    你应当尽量将自己的私人配置放在一个layer中

  • 如果要覆盖其他layer的配置,请放在.spacemacs的dotspacemacs/config函数体内,这个函数会在所有layer加载后加载。

  • 遇到BUG先自己调试,然后可以反馈给spacemacs和package的作者

  • 任何入门级的问题我都乐意回答

转载于:https://my.oschina.net/tshemeng/blog/415974

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值