spacemacs 配置方法

这两天摸索了 spacemacs 的配置方法。定制的指导思想,除了 .spacemacs 文件,不改动 spacemacs 的其它任何文件。以后升级或迁移配置时,直接从 github 下载最新 spacemacs 代码即可,不用做任何改动。在 .spacemacs 配置中,重定义私有配置目录为 ~/.spacemacs.private ,自定义 layer 和 snippets 都放在此目录中。在 emacs 裸奔的机器上,下载并安装完 spacemacs,再下载私有配置,就能使用了。配置过程中的几个主要修改点:

  • 自定义私有目录

    .spacemacs 文件中,修改以下配置

    dotspacemacs-configuration-layer-path '("~/.spacemacs.private/")
    
  • 修改已有 layer 的配置

    spacemacs 中,部分 layer 会有 config.el 配置文件,该文件中保存 layer 的定制修改,但我并不想对 spacemacs 原始文件做任何改动。因为一旦修改了 spacemacs 的 layer 文件,就要把 spacemacs 代码也纳入私有 repo 管理 ,而我希望私有 repo 尽可能小,只有自已的配置,没有第三方代码。办法是有的,在 .spacemacs 中,选择加载包时,可以直接定制配置。

    (auto-completion
     :variables
     ;; auto-completion-front-end 'auto-complete
     auto-completion-return-key-behavior 'complete
     auto-completion-tab-key-behavior 'cycle
     auto-completion-enable-snippets-in-popup t
     auto-completion-complete-with-key-sequence nil
     auto-completion-complete-with-key-sequence-delay 0.1
     auto-completion-private-snippets-directory  (concat (car dotspacemacs-configuration-layer-path) "snippets/")
     auto-completion-enable-sort-by-usage t
     )
    
  • 添加一个 package

    自已原来一直用 org2blog 写博客,但 spacemacs 中没有集成这个包,怎么办?先用下面命令添加一个 layer,根据提示一步步完成。

    M-x configuration-layer/create-layer
    

    完成后,得到 README.orgpackage.el 。在 package.el 中,有详细的说明,怎么定义此 package 的引用和初始化函数。在定义过程中要用到 use-package 这个包,可以去 github 看下使用方法,简单来说,初始化 init 部分在包加载前调用, config 部分在包加载后调用。

  • 修改基本配置

    如果不需要用到其它 package,只是修改基本配置,直接在 .spacemacs 文件的 dotspacemacs/user-config 函数中修改就可以了。

修改完后,不一定需要重新启动 emacs,使用快捷键 SPC f e R 可以重装加载配置。但有些配置是添加到配置列表中的,重新加载配置不启作用,这种情况就需要重启 emacs 了。