Spacemacs怎么增加功能?必须用layer吗?

我想在我的Spacemacs里增加一些新的功能,例如这个org转rst的包 https://github.com/masayuko/ox-rst ,我是不是必须要新定义一个layer才能把这个功能引入进来?还是有其他的方法? 如果我有需求增加一批功能,那需要定义并引入一堆的layer么?还是要定义一个layer把所有相关的包都引进来?

可以把要安装的包添加到 .emacs 文件中的 dotspacemacs-additional-packages 变量中

已经加了,但是还需要增加require,这样才能用这个包里的命令,我把require加到user-config里之后,当时能生效,重启emacs之后就会抛错

已经解决,自己写了一个layer,把Org相关的功能都搞进去了。

抽空看看 autoload 是怎么回事。

用layer更模块化,简单点就是放到.spacemacs/.spacemacs.d/init.eluser-config里面。

autoload的话,现在改写好了应该都按layer的指南用use-package的吧,他会autoload的。

然而看起来,他连 require 和加载顺序都还没来得及搞懂。

确实没搞懂,我研究一下去。正在看layer的帮助文档,理解一下。

恩,之前是没写过layer,不想搞那么复杂,但是将来需要的功能越来越多,定制的也就越来越多,layer是一定要搞起来的,干脆一次性学习一下。目前功能已经搞定了,但是逻辑还需要捋一捋。

举个例子,在 Linux 上装软件,可以用发行版的包管理器,可以自己写源代码编译安装,可以从第三方下载软件安装。

Emacs 作为一个操作系统,Spacemacs 作为 Emacs 的一个发行版,可以用 Spamacs 提供的 Layer 装扩展,也保留 Emacs 本身就具有的扩展功能,包括自己写配置,自己下载插件安装。 而且 Emacs 是不分配置,插件,扩展语言,命令,数据的,它们都是 Lisp 对象。所以扩展方式远比你之前接触过的东西灵活。

1 个赞

谢大神指点,刚才看了layer的帮助文档,捋顺了一些东西,距离懂Emacs还有很长的路要走,先看Lisp语法去了。