spacemacs 简介

spacemacs

简介

相当于 emacs 扩展的集成装置,集成了好多扩展,使得 emacs 更易于使用 。

安装更新与回滚

# 安装
# 稳定版
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d

# 开发版
git clone -b develop https://github.com/syl20bnr/spacemacs ~/.emacs.d

# 更新
git pull
configuration-layer/update-packages
configuration-layer/rollback

层的配置

emacs 作为扩展性能很好的编辑器,早已不光只完成编辑任务了,还充当着其他的角色。这个层就相当于充当的 某个角色一样,用来完成特定任务的。

结构

一般每层就这个结构。

[layer_name]
  |__ [local]
  | |__ [package 1]
  | | …
  | |__ [package n]
  |– layers.el
  |__ packages.el
  |__ funcs.el
  |__ config.el
  |__ keybindings.el

[] = directory

层的使用

只要在 配置文件的 dotspacemacs-configuration-layers 段加入已定义的层名就好了。

自定义层

自定义的层一般放在系统给你分配的 private 目录。

Dotfile 配置文件

预定义的配置文件名是 .spacemacs 文件,当然可以把它切割成分散的文件,进行分段管理。

同步配置

dotspacemacs/sync-configuration-layers  

测试

dotspacemacs/test-dotfile 

概念

编辑样式

提供三种编辑样式, VimEmacs , Hybrid (vim 和 emacs 的混合样式),可以配置自己偏爱的风格。

leader key(前导键)

呼出命令的按键 ,*emacs* 自带的是 Meta-x ,现在一般改成了 SPC 键了。

数字参数

原来输入数字参数的按键 C-u SPC u 代替了。

Toggles( 开关 )

开关一般以 SPC t SPC T 开头

环境变量和 PATH

spacemacs 有自己的环境变量 dotspacemacs/user-env

键绑定

一般会设置成 前导键 式的绑定样式

(spacemacs/declare-prefix "o" "custom")
(spacemacs/set-leader-keys "oc" 'my-custom-command)

界面

主题

可以安装别的主题

设置默认主题组

(setq-default dotspacemacs-themes '(spacemacs-light leuven zenburn))

字体

Frame

  • Title

    边框的标题,可以修改标题的内容

  • Transparency

    设置界面的透明度

布局和工作空间

对打开的 文件 buffer 进行归类管理 ,一般是一个项目文件夹

布局

一般是某个工程,可以进行布局管理

导航

光标

光标移动用 vim 样式的快捷键就好了,如果选择 Vim 编辑样式的话。

快速跳转 avy

快速跳转到链接 ace-link

窗口管理

对于窗口,可以进行分割,可以跳到某个编号的窗口,对窗口进行移动位置

Buffers 管理

文件管理

Frame 管理

Emacs 文件

书签文件

寄存器

SPC r

搜索

编辑

粘贴

粘贴 kill ring 可以用 C-j C-k 上下遍历

文本操作

SPC x 开头

文本输入

插入特殊的文本,以 SPC i 开头

缩放显示区域

narrow

替换

  • 选中替换 iedit

    SPC s e

正则表达式

SPC x r 开头

字符复制上面行 CTL-y 下面行 CTL-e

服务

保证服务不关闭

(setq-default dotspacemacs-persistent-server t)

退出 emacs

SPC q q

禁止服务

(setq-default dotspacemacs-enable-server nil)

调试

加载有错误

emacs –debug-init

更新包后有错,要重新编译安装包

spacemacs/recompile-elpa

打开调试开关

toggle-debug-on-error

常规单步调试

  • Start emacs with emacs -q, this will load a vanilla emacs without any non-system packages loaded.
  • There open a scratch buffer with C-x b *scratch* RET
  • Add initialization code for your package there

    ;; Load the package
    (require 'package)
    
    ;; Mention all packages you wish to have loaded
    (setq package-load-list
          '((package1 t)
    	(package2 t)
    	(package3 t)))
    
    ;; Do package specific configuration if required
    ;; (package-local-init)
    
    ;; Intialize your package list
    (package-initialize)
  • Now press M-x eval-buffer to evaluate the code.
  • Reproduce your issue. Note down step by step instructions.
  • With this information open an upstream issue following their issue templates. If they have non its a good idea to start with the infos required in the spacemacs issue template and add missing information when required from the package maintainers.
0%