常规操作

光标移动

光标的移动默认采用 vi 的默认形式:hjkl

快捷键 描述
h 向左移动光标(Vim 原生功能,无映射)
j 向下移动光标(Vim 原生功能,无映射)
k 向上移动光标(Vim 原生功能,无映射)
l 向右移动光标(Vim 原生功能,无映射)
H 光标移至屏幕最上方(Vim 原生功能,无映射)
L 光标移至屏幕最下方(Vim 原生功能,无映射)
SPC j 0 跳至行首(并且标记原始位置)
SPC j $ 跳至行尾(并且标记原始位置)
SPC t - 锁定光标在屏幕中间(TODO)

使用 vim-easymotion 快速跳转

快速跳到网址 (TODO)

类似于 Firefox 的 vimperator 的 f 键的功能。

快捷键 描述
SPC j u/(o for help buffer) 快速跳到/打开url

常用的成对快捷键

快捷键 描述
[ SPC 在当前行或已选区域上方添加空行
] SPC 在当前行或已选区域下方添加空行
[ b 跳至前一 buffer
] b 跳至下一 buffer
[ f 跳至文件夹中的前一个文件
] f 跳至文件夹中的下一个文件
[ l 跳至前一个错误处
] l 跳至下一个错误处
[ c 跳至前一个 vcs hunk (需要 VersionControl 模块)
] c 跳至下一个 vcs hunk (需要 VersionControl 模块)
[ q 跳至前一个错误
] q 跳至下一个错误
[ t 跳至前一个标签页
] t 跳至下一个标签页
[ w 跳至前一个窗口
] w 跳至下一个窗口
[ e 向上移动当前行或者已选择行
] e 向下移动当前行或者已选择行
[ p 粘贴至当前行上方
] p 粘贴至当前行下方
g p 选择粘贴的区域

跳转,合并,拆分

SPC j 为前缀的快捷键主要用作:跳转(jumping),合并(joining),拆分(splitting)。

跳转
快捷键 描述
SPC j 0 跳至行首,并且在原始位置留下标签,以便跳回
SPC j $ 跳至行尾,并且在原始位置留下标签,以便跳回
SPC j b 向后回跳
SPC j f 向前跳
SPC j d 跳至当前目录某个文件夹
SPC j D 跳至当前目录某个文件夹(在另外窗口展示文件列表)
SPC j i 跳至当前文件的某个函数,使用 Denite 打开语法树
SPC j I 跳至所有 Buffer 的语法树(TODO)
SPC j j 跳至当前窗口的某个字符 (easymotion)
SPC j J 跳至当前窗口的某两个字符的组合 (easymotion)
SPC j k 跳至下一行,并且对齐下一行
SPC j l 跳至某一行 (easymotion)
SPC j q show the dumb-jump quick look tooltip (TODO)
SPC j u 跳至窗口某个 url (TODO)
SPC j v 跳至某个 vim 函数的定义处 (TODO)
SPC j w 跳至 Buffer 中某个单词 (easymotion)
合并,拆分
快捷键 描述
J 合并当前行和下一行
SPC j k 跳至下一行,并且对齐该行
SPC j n 从光标处断开当前行,并且插入空行以及进行对齐
SPC j o 从光标处拆分该行,光标留在当前行
SPC j s 从光标处进行拆分 String
SPC j S 从光标处进行拆分 String,并插入对齐的空行

窗口操作

窗口操作常用快捷键

每一个窗口,都有一个编号,该编号显示在状态栏的最前端,可通过 SPC 编号 进行快速窗口跳转。

快捷键 描述
SPC 1 跳至窗口 1
SPC 2 跳至窗口 2
SPC 3 跳至窗口 3
SPC 4 跳至窗口 4
SPC 5 跳至窗口 5
SPC 6 跳至窗口 6
SPC 7 跳至窗口 7
SPC 8 跳至窗口 8
SPC 9 跳至窗口 9

窗口操作相关快捷键(以 SPC w 为前缀):

快捷键 描述
SPC w TAB/<Tab> 在统一标签内进行窗口切换
SPC w = 对齐分离的窗口
SPC w b force the focus back to the minibuffer (TODO)
SPC w c 进入阅读模式,浏览当前窗口
SPC w C 选择某一个窗口,并且进入阅读模式
SPC w d 删除一个窗口
SPC u SPC w d delete a window and its current buffer (does not delete the file) (TODO)
SPC w D 选择一个窗口,并且关闭
SPC u SPC w D delete another window and its current buffer using vim-choosewin (TODO)
SPC w t toggle window dedication (dedicated window cannot be reused by a mode) (TODO)
SPC w f toggle follow mode (TODO)
SPC w F 新建一个新的标签页
SPC w h 移至左边窗口
SPC w H 将窗口向左移动
SPC w j 移至下方窗口
SPC w J 将窗口移至下方
SPC w k 移至上方窗口
SPC w K 将窗口移至上方
SPC w l 移至右方窗口
SPC w L 将窗口移至右方
SPC w m 最大化/最小化窗口(最大化相当于关闭其他窗口)(TODO, now only support maximize)
SPC w M 选择窗口进行替换
SPC w o 按序切换标签页
SPC w p m open messages buffer in a popup window (TODO)
SPC w p p close the current sticky popup window (TODO)
SPC w r 按序切换窗口
SPC w R 逆序切换窗口
SPC w s or SPC w - 水平分割窗口
SPC w S 水平分割窗口,并切换至新窗口
SPC w u undo window layout (used to effectively undo a closed window) (TODO)
SPC w U redo window layout (TODO)
SPC w v or SPC w / 垂直分离窗口
SPC w V 垂直分离窗口,并切换至新窗口
SPC w w 切换至前一窗口
SPC w W 选择一个窗口

文件和 Buffer 操作

Buffer 操作相关快捷键

Buffer 操作相关快捷键都是已 SPC b 为前缀的:

快捷键 描述
SPC TAB 切换至前一buffer,可用于两个 buffer 来回切换
SPC b . 启用 buffer 临时快捷键
SPC b b 切换至某一 buffer,通过 Unite/Denite 进行筛选
SPC b d 删除当前 buffer,但保留 Vim 窗口
SPC u SPC b d kill the current buffer and window (does not delete the visited file) (TODO)
SPC b D 选择一个窗口,并删除其 buffer
SPC u SPC b D kill a visible buffer and its window using ace-window(TODO)
SPC b C-d 删除其他 buffer
SPC b C-D kill buffers using a regular expression(TODO)
SPC b e 清除当前 buffer 内容,需要手动确认
SPC b h 打开 SpaceVim 欢迎界面
SPC b n 切换至下一个 buffer,排除特殊插件的 buffer
SPC b m 打开 Messages buffer
SPC u SPC b m kill all buffers and windows except the current one(TODO)
SPC b p 切换至前一个 buffer,排除特殊插件的 buffer
SPC b P 使用剪切板内容替换当前 buffer
SPC b R 从磁盘重新读取当前 buffer 所对应的文件
SPC b s switch to the scratch buffer (create it if needed) (TODO)
SPC b w 切换只读权限
SPC b Y 将整个 buffer 复制到剪切板
z f Make current function or comments visible in buffer as much as possible (TODO)
新建空白 buffer
快捷键 描述
SPC b N h 在左侧新建一个窗口,并在其中新建空白 buffer
SPC b N j 在下方新建一个窗口,并在其中新建空白 buffer
SPC b N k 在上方新建一个窗口,并在其中新建空白 buffer
SPC b N l 在右侧新建一个窗口,并在其中新建空白 buffer
SPC b N n 在当前窗口新建一个空白 buffer
特殊 buffer

在 SpaceVim 中,有很多特殊的 buffer,这些 buffer 是由插件或者 SpaceVim 自身新建的,并不会被列出。

文件操作相关快捷键

文件操作相关的快捷键都是以 SPC f 为前缀的:

快捷键 描述
SPC f b 跳至文件书签
SPC f c copy current file to a different location(TODO)
SPC f C d 修改文件编码 unix -> dos
SPC f C u 修改文件编码 dos -> unix
SPC f D 删除文件以及 buffer,需要手动确认
SPC f E open a file with elevated privileges (sudo edit)(TODO)
SPC f f 打开文件
SPC f F 打开光标下的文件
SPC f o open a file using the default external program(TODO)
SPC f R rename the current file(TODO)
SPC f s 保存文件
SPC f S 保存所有文件
SPC f r 打开文件历史
SPC f t 切换侧栏文件树
SPC f T 打开文件树侧栏
SPC f y 复制当前文件,并且显示当前文件路径
Vim 和 SpaceVim 相关文件

SpaceVim 相关的快捷键均以 SPC f v 为前缀,这便于快速访问 SpaceVim 的配置文件:

快捷键 描述
SPC f v v 复制并显示当前 SpaceVim 的版本
SPC f v d 打开 SpaceVim 的用户配置文件

文件树

SpaceVim 使用 vimfiler 作为默认的文件树插件,默认的快捷键是 F3, SpaceVim 也提供了另外一组快捷键 SPC f tSPC f T 来打开文件树,如果需要使用 nerdtree 作为默认文件树,需要设置:

  1. # 默认值为 vimfiler
  2. filemanager = "nerdtree"

SpaceVim 的文件树提供了版本控制信息的借口,但是这一特性需要分析文件夹内容,会使得文件树插件比较慢,因此默认没有打开,如果需要使用这一特性,可向配置文件中加入 enable_vimfiler_gitstatus = true,启用后的截图如下:

file-tree

文件树中的常用操作

文件树中主要以 hjkl 为核心,这类似于 vifm 中常用的快捷键:

快捷键 描述
<F3> or SPC f t 切换文件树
文件树内的快捷键
<Left> or h 移至父目录,并关闭文件夹
<Down> or j 向下移动光标
<Up> or k 向上移动光标
<Right> or l 展开目录,或打开文件
Ctrl+j 未使用
Ctrl+l 未使用
E 未使用
. 切换显示隐藏文件
sv 分屏编辑该文件
sg 垂直分屏编辑该文件
p 预览文件
i 切换至文件夹历史
v 快速查看
gx 使用相关程序执行该文件(TODO)
' 切换标签
V 标记该文件
Ctrl+r 刷新页面
文件树中打开文件

如果只有一个可编辑窗口,则在该窗口中打开选择的文件,否则则需要制定窗口来打开文件:

快捷键 描述
l or Enter 打开文件
sg 分屏打开文件
sv 垂直分屏打开文件