Spacemacs 使用总结
文章目录
简介
Spacemacs 是一份 emacs 的配置文件,想要使用它,你先要有 emacs。
安装 & 使用
|
|
配置文件
Spacemacs 的配置文件位于 ~/.spacemacs 中,我们只需要修改这个文件就可以制定自己的配置了。
一般情况下,我们只需要在 dotspacemacs-configuration-layers 中添加自己需要的 layer 就可以了。
常用快捷键
配置文件管理
SPC f e d 快速打开配置文件 .spacemacs
SPC f e R 同步配置文件
SPC q R 重启 emacs
帮助文档
SPC h d 查看 describe 相关的文档
SPC h d f 查看指定函数的帮助文档
SPC h d b 查看指定快捷键绑定了什么命令
SPC h d v 查看指定变量的帮助文档
文件管理
SPC f f 打开文件(夹),相当于 $ open xxx 或 $ cd /path/to/project
SPC / 用合适的搜索工具搜索内容,相当于 $ grep/ack/ag/pt xxx 或 ST / Atom 中的 Ctrl + Shift + f
SPC s c 清除搜索高亮
SPC f R 重命名当前文件
SPC b k 关闭当前 buffer (spacemacs 0.1xx 以前)
SPC b d 关闭当前 buffer (spacemacs 0.1xx 以后)
SPC SPC 搜索当前文件
窗口管理
SPC f t 或 SPC p t 用 NeoTree 打开/关闭侧边栏,相当于 ST / Atom 中的 Ctrl(cmd) + k + b
SPC f t 打开当前文件所在的目录
SPC p t 打开当前文件所在的根目录
SPC 0 光标跳转到侧边栏(NeoTree)中
SPC n(数字) 光标跳转到第 n 个 buffer 中
SPC w s 或 SPC w - 水平分割窗口
SPC w v 或 SPC w / 垂直分割窗口
SPC w c 关闭当前窗口 (spacemacs 0.1xx 以前)
SPC w d 关闭当前窗口 (spacemacs 0.1xx 以后)
项目管理
SPC p p 切换项目
SPC p D 在 dired 中打开项目根目录
SPC p f 在项目中搜索文件名,相当于 ST / Atom 中的 Ctrl + p
SPC p R 在项目中替换字符串,根据提示输入「匹配」和「替换」的字符串,然后输入替换的方式:
- E 修改刚才输入的「替换」字符串
- RET 表示不做处理
- y 表示只替换一处
- Y 表示替换全部
- n 或 delete 表示跳过当前匹配项,匹配下一项
- ^ 表示跳过当前匹配项,匹配上一项
- , 表示替换当前项,但不移动光标,可和 n 或 ^ 配合使用
对齐
SPC j = 自动对齐,相当于 beautify
Shell 集成 (必须先配置 Shell layer)
SPC '(单引号) 打开/关闭 Shell
C-k 前一条 shell 命令,相当于在 shell 中按上箭头
C-j 后一条 shell 命令,相当于在 shell 中按下箭头
快速翻页 (在 spacemacs 0.1xx 中没测试过)
SPC n , 或 . 或 < 或 > 进入 scrolling transient state
然后重复按 , 或 . 或 < 或 > 即可,
按其他键会退出 scrolling transient state
, 向上翻一页
. 向下翻一页
< 向上翻半页
> 向下翻半页
让 Spacemacs 支持 EditorConfig
EditorConfig 是一个配置文件,一般位于项目的根目录,它可以让不同的编辑器和IDE 都按照相同的格式来格式化代码,对于项目的维护者来说是一个很好的工具。
Spacemacs 也支持 EditorConfig,只需要在配置文件中添加配置即可。下面以 OS X 为例,通过以下步骤即可让 Spacemacs 支持 EditorConfig:
$ brew install editorconfig在
~/.spacemacs中的dotspacemacs-additional-packages中添加editorconfig:1 2 3 4dotspacemacs-additional-packages '( editorconfig )创建
.editorconfig文件,写上自己喜欢的配置。在
~/.spacemacs中的docspacemacs/user-config中加入(editorconfig-mode 1)。完。
Git 集成 (必须先配置Magit 的使用)
Git 是一个优秀的版本控制工具,我们可以在 .spacemacs 的 dotspacemacs-configuration-layers 列表中添加 git 就可以集成 git 了。
下面是一些常用的 git 命令,前缀为 g。
spacemacs 0.1xx:
| Git | Magit |
|---|---|
git init |
SPC g i |
git status |
SPC g s |
git add |
SPC g s 弹出层选中文件然后按 s |
git add currentFile |
SPC g S |
git commit |
SPC g c c |
git push |
SPC g P 按提示操作 |
git checkout xxx |
SPC g C |
git checkout -- xxx |
SPC g s 弹出层选中文件然后按 u |
git log |
SPC g l l |
spacemacs 0.2xx:
大部分命令整合到 SPC g s 中,需要按照提示执行命令
在 commit 时,我们输入完 commit message 之后,需要按 C-c C-c 来完成 commit 操作,也可以按 C-c C-k 来取消 commit 。
设置文件默认的主模式
虽然我们可以通过 M-x 来设置文件的主模式,但这种方式只是在单独修改某个文件的主模式时好用,如果要把所有同类型的文件都改成其他模式,这种方式的效率就太低了。
在 Spacemacs 中,我们可以用 auto-mode-alist 来设置某一类文件默认的主模式。
我们只需要在 ~/.spacemacs 中的 user-config 中加入下面代码即可:
|
|
上面代码会用 react-mode 打开所有 .js 文件。
设置主模式的 hook
主模式的 hook 是一个 elisp 函数,这个函数会在主模式加载时调用,常用于为特定的主模式自定义配置。
如我想在 js2-mode 中作出如下配置:
- 移除检查分号的提示 (否则当行末缺少了分号的时候,会给出烦人的提示)
- 支持 Node.js 内建函数 (否则当出现
require,module之类的时候会提示未定义变量) - 设置缩进为 2
这时候我可以通过如下方式来设置:
|
|
Emacs 服务器
Spacemacs 会在启动时启动服务器,这个服务器会在 Spacemacs 关闭的时候被杀掉。
使用 Emacs 服务器
当 Emacs 服务器启动的时候,我们可以在命令行中使用 emacsclient 命令:
$ emacsclient -c用 Emacs GUI 来打开文件$ emacsclient -t用命令行中 Emacs 来打开文件
杀掉 Emacs 服务器
除了关闭 Spacemacs 之外,我们还可以用下面的命令来杀掉 Emacs 服务器:
$ emacsclient -e '(kill-emacs)'
持久化 Emacs 服务器
我们可以持久化 Emacs 服务器,在 Emacs 关闭的时候,服务器不被杀掉。只要设置 ~/.spacemacs 中 dotspacemacs-persistent-server 为 t 即可。
但这种情况下,我们只可以通过以下方式来杀掉服务器了:
SPC q q退出 Emacs 并杀掉服务器,会对已修改的 Buffer 给出保存的提示。SPC q Q同上,但会丢失所有未保存的修改。
参考资料
文章作者 scarletsky
上次更新 2019-04-30 (95a170d)