常规操作
光标移动
光标的移动默认采用 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 t
和 SPC f T
来打开文件树,如果需要使用 nerdtree 作为默认文件树,需要设置:
# 默认值为 vimfiler
filemanager = "nerdtree"
SpaceVim 的文件树提供了版本控制信息的借口,但是这一特性需要分析文件夹内容,会使得文件树插件比较慢,因此默认没有打开,如果需要使用这一特性,可向配置文件中加入 enable_vimfiler_gitstatus = true
,启用后的截图如下:
文件树中的常用操作
文件树中主要以 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 |
垂直分屏打开文件 |