Spacemas的Dotfile配置

* 7、Dotfile配置
  用户的配置可以存储在你的~/.spacemacs
** 7.1、安装
   当Spacemacs第一次启动时,他会要求你选择你的编辑模式。一旦你选择一个模式,会根据一个模板创建.spacemacs文件
*** 7.1.1、替代设置
    从v0.104版本开始,你可以选择~/.spacemacs.d/init.el配置你的dotfile代替~/.spacemacs。如果你要这么做,只需要把~/.spacemacs的内容移动到~/.spacemacs.d/init.el中。
    ~/.spacemacs总是优先被读取,因此为了~/.spacemacs.d/init.el能够被读取,~/.spacemacs必须把内容放到init.el中。如果你这样做,所有对于~/.spacemacs的指南将应用于~/.spacemacs.d/init.el
    另外,也可以使用环境变量SPACEMACSDIR重写~/.spacemacs.d/的位置。当然你也可以使用符号链接更改此目录的位置。
** 7.2、dotfile同步改变
   要应用修改~/.spacemacs可以使用快捷键SPC f e R,他将重新执行.spacemacs的初始化过程。
   注意:它会同步执行dotspacemacs/init和dotspacemacs/user-config函数,你可能会遇到一些不必要的副作用。例如:你切换到了dotspacemacs/user-config为了打开一个功能,
   当dotfile重新同步时,该行功能将会关闭。为了避免这种副作用,建议使用setq表达式,代替切换到那个函数,或者使用on或off版本的函数
  (即代替spacemacs/toggle-<thing>,使用spacemacs/toggle-<thing>-on或spacemacs/toggle-<thing>-off)。
  他可以避免dotspacemacs/user-config的执行通过使用(SPC u SPC f e R)。
** 7.3、测试
   如果你的~/.spacemacs看起来是正确的,你可以用SPC:dotspacemacs/test-dotfile检查。这将检查除了其他事项外,声明的层是否能够被找到和该变量是否是一个合理的值。
   当你使用SPC f e R时这些测试也能自动运行。
** 7.4、内容
*** 7.4.1、使用配置层
    要使用配置层,把它添加到你的~/.spacemacs文件中的dotspacemacs-configuration-layers变量中。
    例如添加RMS的配置层:(setq-default dotspacemacs-configuration-layers '(rms))
    如果这个层不存在,你可以尝试在层目录中的另一个。配置层应该保存在~/.emacs.d/private或~/.emacs.d/layers中,
    但是你也可以保存在其他路径通过声明一个Spacemacs能够找到配置层的路径,你必须路径加到你的~/.spacemacs文件中的dotspacemacs-configuration-layer-path列表下。
    (setq-default dotspacemacs-configuration-layer-path '("~/.myconfig/"))
*** 7.4.2、设置配置层变量
    一些配置层有特定的配置变量启用特殊的功能。例如git层有几个配置变量,它们能够被设置在dotspacemacs-configuration-layers:
    (defun dotspacemacs/layers ()
    ;; List of configuration layers to load.
    (setq-default dotspacemacs-configuration-layers '(auto-completion
                                                      (git :variables
                                                         git-magit-status-fullscreen t)
                                                    smex)))
*** 7.4.3、不包括包
    你可以排除你不想安装的包用dotspacemacs-excluded-packages,这个变量可以排除包和扩展(关于包和扩展的更多信息(6、配置层))。
    例如除去包rainbow-delimiters:(setq-default dotspacemacs-excluded-packages '(rainbow-delimiters)),当你排除这个包时,Spacemacs会自动删除它当你下次启动时,
    所有无用的依赖关系都会自动删除。
*** 7.4.4、Hooks
    在置在Spacemacs开始启动和结束启动的过程中,~/.spacemacs文件中有三个特殊的函数能够用来执行配置。
    * dotspacemacs/init在Spacemacs开始启动时触发,你可以在此处配置Spacemacs变量。
    * dotspacemacs/user-init在Spacemacs开始启动时触发,用户初始化发生在这儿。
    * dotspacemacs/user-config在Spacemacs结束启动时触发,大多数的用户配置应该在这。
*** 7.4.5、绑定快捷键
    按键顺序与Emacs命令绑定在一起,最多的基本绑定是全局绑定,设置一个全局绑定的快捷键可以使用global-set-key方法,例如:
    (global-set-key (kbd "C-]") 'forward-char),这个kbd宏接收一个描述按键序列的字符串,全局绑定经常被其他绑定覆盖。
    例如evil-mode定义了目标状态的快捷键映射,下面可以定义了同样的快捷键但是仅仅是在插入状态下。
    (define-key是一个内置函数,evil-mode有一个他自己定义快捷键的函数):(define-key evil-insert-state-map (kbd "C-]") 'forward-char)
    很有可能Spacemacs是用的evil-leader包,它的键绑定是使用evil-leader的键映射。这是大多数的spacemacs的绑定方式。
    这有来自于这个包的两个相似的命令:(spacemacs/set-leader-keys "C-]" 'forward-char)
    (spacemacs/set-leader-keys-for-major-mode 'emacs-lisp-mode "C-]" 'forward-char)
    这个函数使用一个像kbd的宏来翻译按键序列,第二个函数绑定的快捷键仅仅在一个特殊的模式中(emacs-lisp-mode),第二个函数绑定的快捷键不会影响org-mode等其他模式。


    最后,我们应该认识前缀键,从本质上讲,任何键盘布局都能个嵌套,嵌套的键盘布局在Spacemacs中广泛使用。
    例如:SPC a绑定了"applications",SPC ac绑定了calc-dispatch。嵌套的键绑定是很容易的。
    (spacemacs/declare-prefix "]" "bracket-prefix")
    (spacemacs/set-leader-keys "]]" 'double-bracket-command)
    第一行定义了前缀 SPC ],第二行结合第一行的命令绑定按键序列SPC ] ],第一行实际上不是必须的,但它能给你新的前缀一个名字,查询键工具能够使用它(如which-key)。
    还有许多关于键绑定的内容,但是这些是基础的。键能够被绑定在你的~/.spacemacs文件或个人的层中。
*** 7.4.6、自定义变量

    自定义变量可以在M-x customize-group中配置,它能够自动保存你的配置在你~/.spacemacs文件的末尾。



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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值