Spacemacs configuration layers

6、配置层
注意:这里只是简单的说明一下层怎么工作,关于写配置层更详细的介绍可以访问下面这个链接:http://spacemacs.org/doc/LAYERS.html
6.1、目的
层能够把提供功能的包收集在一起。例如:Python层提供自动完成,语法检查,并为Python文件提供REPL支持。这种方式有助于保持配置有组织,用户不用考虑要安装什么软件包从而减少用户的麻烦。
6.2、结构
配置被组织起来通过层。每个层都有以下的结构:
layer_name]
—- [local]
——–[package 1]
——– …
——–[package n]
—-config.el
—-funcs.el
—-keybindings.el
—-packages.el

[] = directory
config.el:Emacs的内置配置自定义配置。
funcs.el:各种各样的函数和宏(通常用于keybindings.el)。
keybindings.el:Emacs内置的快捷键或自定义的快捷键。
packages.el:已经安装的包的列表和初始化的函数。

包是ELPA包,可以从ELPA兼容库中安装,或者quelpa在线来源安装,本地的包在layer的local目录下。

6.3、包

6.3.1、层内的包

6.3.1.1、声明
包用变量声明和<layer-packages>(layer是层的名称),它们是按照字母顺序,所以有时不得不用一些eval-after-load方法。
例子: (setq <layer>-packages '(package1 package2 ...))
有关使用quelpa安装本地包或者该层的本地文件夹的详细内容可以访问下面这个链接:http://spacemacs.org/doc/LAYERS.html
6.3.1.2、初始化
为了初始化扩展或xxx包,可以定义下面格式的函数在packages.el中

    (defun <layer>/init-xxx() ...body)

6.3.1.3、排除
可以在每个层中排除一些包从Spacemacs中,当配置层的目的是替换掉在Spacemacs层中的普通包的声明时,这是非常有用的。
添加这个包的名称到排除包的变量<layer>-excluded-packages
例子:(setq <layer>-excluded-packages '(package1 package2 ...))
6.3.2、层外的包
有时一个层并不是必须的开销,假如你想安装一个包并没有任何一个配置与之关联就可以不用层。一个例子是你只关心一些语言的语法高亮。
你可以安装这样的包通过添加它们到dotspacemacs-additional-packages变量。
如果你想要添加一些配置可以考虑创建一个层或者把配置放到dotspacemacs/user-config函数中
例子:(setq dotspacemacs-additional-packages '(llvm-mode dts-mode))
6.4、包同步
Spacemacs的特色就是有一个同步引擎对于ELPA包。这意味着Spacemacs会自动安装新的软件包在-packages 列表中和自动删除你的elpa目录中无用的包。它使Spacemacs像Vundle
6.5、配置层的类型
这有三个类型对于配置层:
* 核心层:这是Spacemacs层
* 私有层:在private目录,它们被git忽略
* 共有层:在layer目录,这些层被分享通过社区。
6.6、提交配置层
如果你决定提供你的contrib配置层。请查看相关的指导。
6.7、示例:Megapack Theme
这有一个简单的配置层,列出了一堆主题。
要安装它,可以把下面的语句加在~/.spacemacs文件中:

(setq-default dotspacemacs-configuration-layers '(theme-megapack))

现在你已经安装了一百多个主题,你可以自由的切换不同的主题通过SPC T h快捷键
6.8、管理私有配置层
Spacemacs配置系统足够灵活,能够让你以不同的方式管理你的私有层
6.8.1、用private目录
private目录中的所有文件都被git忽略,因此它是一个很好的地方存储私有层配置,这种有一个大的缺点:你的层不被源控制。
6.8.2、使用一个额外的git仓库
这是管理你的私有层的推荐方式。最好的方法是将你所有的私有层存储到额外的git仓库。如果你有一个dotfiles库,可以存储在里面。把你的~/.spacemacs文件也放进去。
这时你可以自由的链接你的层到~/.emacs.d/private或者让他们到任何你想的目录和引用父目录到变量dotspacemacs-configuration-layer-path或者你的~/.spacemacs文件。
你也可以有一个专门的仓库存储你所有私有层,这时可以克隆仓库到~/.emacs.d/private目录。
6.8.3、使用个人分支
最后的方法是把你的私有层push到个人分支上,你不断的更新用master或者develop
6.9、自定义层的提示
请看下面的链接中关于自定义层的一些提示信息:http://spacemacs.org/doc/LAYERS.html。 学习如何最好的让他们适应Spacemacs的理念和加载策略。

原文链接:http://spacemacs.org/doc/DOCUMENTATION.html#orgheadline32

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值