spacemacs的加载次序

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

  • 利用package包管理器,下载扩展非常方便,几乎不需要手工操作
  • 用户不需要直接安装package,而是为特定场景创建layer,一个layer可以包含多个package,以及独立的键盘配置
  • layer默认autoload延迟加载扩展,所以spacemacs默认100多个扩展启动不过数秒
  • 基于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之前加载,无视我在代码中的书写顺序

我个人推荐创建个人layer时使用init-前缀,这是源自el-get的习惯。

时间: 2024-08-26 00:04:22

spacemacs的加载次序的相关文章

类的加载次序与继承

原创转载请注明出处:http://www.cnblogs.com/chaeyeon/p/6146169.html 如果:A extends B1.若要加载类A,应先加载父类B.而只要加载一个类,静态字段就会分配内存,静态代码块就会执行.则先为父类B(Object)的静态变量分配内存以及执行父类的静态语句块(执行先后顺序按由书写执行决定). 2.然后再加载子类A,及为类A的静态变量分配内存以及执行类A的静态语句块.(并且1.2步骤只会在类第一次加载的时候执行,即最多执行一次) 结论一:子类的加载,

游览器对js加载的次序

直接看例子 <body> <script> console.log("first"); var script = document.createElement("script"); script.src = "js/test.js"; document.body.appendChild(script); //document.getElementsByTagName("head")[0].appendC

web.xml 中的listener、filter、servlet加载及一些配置

在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter.最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 Servlet

js效果笔记:怎样实现图片的懒加载以及jquery.lazyload.js的使用

在项目中有时候会用到图片的延迟加载,那么延迟加载的好处是啥呢? 我觉得主要包括两点吧,第一是在包含很多大图片长页面中延迟加载图片可以加快页面加载速度:第二是帮助降低服务器负担. 下面介绍一下常用的延迟加载插件jquery.lazyload.js以及怎样实现一个延迟加载的插件. 一:jquery.lazyload.js插件 lazyload是jQuery写的延迟加载插件,在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的. 实现原理 首

Java重要技术(28)类加载器之类加载器的层次关系和委托加载机制

1.1. 类加载器的层次 类加载器包括三种: Bootstrap ClassLoader:用于加载JRE的lib目录下的jar文件中的class. ExtClassLoader:用于加载JRE的lib/ext目录下的jar文件中的class. AppClassLoader:用于加载classpath下的class. 在加载一个class时,通常应该先委托给parent类加载器来加载,parent类加载器找不到这个类时,才自行加载.实际优先次序从高到低排列是BootStrap ClassLoade

js文件如何最后加载

总结一下,大概有三种方式 1.最简单粗暴的:将js文件放在最后写 2.window.onload 当一个文档完全下载到浏览器中时,才会触发window.onload事件.这意味着页面上的全部元素对js而言都是可以操作的,也就是说页面上的所有元素加载完毕才会执行.这种情况对编写功能性代码非常有利,因为无需考虑加载的次序. 3.$(document).ready{ }: 会在DOM完全就绪并可以使用时调用.虽然这也意味着所有元素对脚本而言都是可以访问的,但是,并不意味着所有关联的文件都已经下载完毕.

(转载)web.xml 中的listener、 filter、servlet 加载顺序及其详解

首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.  但不会因为 filter 写在 listener 的前面而会先加载 filter.  最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息.我们的 listener, filter 等在初始化时会用到这些上下文中的信息,那么 context-param 配置节是不是

JavaScript 的性能优化:加载和执行

随着 Web2.0 技术的不断推广,越来越多的应用使用 JavaScript 技术在客户端进行处理,从而使 JavaScript 在浏览器中的性能成为开发者所面临的最重要的可用性问题.而这个问题又因 JavaScript 的阻塞特性变的复杂,也就是说当浏览器在执行 JavaScript 代码时,不能同时做其他任何事情.本文详细介绍了如何正确的加载和执行 JavaScript 代码,从而提高其在浏览器中的性能. 概览 无论当前 JavaScript 代码是内嵌还是在外链文件中,页面的下载和渲染都必

jQuery延迟加载(懒加载)插件 – jquery.lazyload.js

Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的.在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服务器负担. Demo页面: 基本选项 淡入效果 对不支持JavaScript浏览器的降级处理 水平滚动 容器内水平滚动 容器内垂直滚动 页