项 目 主 页: https://spacevim.org/cn/
Github 地址 : https://github.com/SpaceVim/SpaceVim
SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
即用的Vim-IDE。
使用过程中遇到问题或者有什么功能需求可以在 github 提交 issue,这将更容易被关注
和修复。
以下是近几周的开发汇总:
推荐阅读:
Linux/Mac:
curl -sLf https://spacevim.org/install.sh | bash
想要获取更多的信息,请参考:
curl -sLf https://spacevim.org/install.sh | bash -s -- -h
SpaceVim是一种模块化配置,可以运行在vim或者neovim上,关于vim以及neovim的安装,请参考以下链接:
安装neovim
从源码编译vim
windows:
Window 下最方便的是下载安装脚本(install.cmd)至本地,直接运行,安装完毕后,打开 Gvim 他将自动下载插件,在 Windows 下需要手动安装 Nerd-fonts 字体。
可以通过 :SPUpdate
命令来更新spacevim 以及包含的插件,如果需要更新指定的插件,如:startuptime.vim,只需要执行 :SPUpdate startuptime.vim
,也可以通过 :SPUpdate SpaceVim
来更新 SpaceVim.
四大核心思想: 记忆辅助, 可视化交互, 一致性,社区驱动.
如果违背了以上四大核心思想,我们将会尽力修复。
所有快捷键,根据其功能的不同分为不同的组,以相应的按键作为前缀,例如 b
为 buffer 相关快捷键前缀,p
为 project 相关快捷键前缀, s
为 search 相关快捷键前缀,h
为 help 相关快捷键前缀。
创新的实时快捷键辅助系统,以及查询系统,方便快捷查询到可用的模块、插件以及其他更多信息。
相似的功能使用同样的快捷键,这在 SpaceVim 中随处可见。这得益于明确的约定。其他模块的文档都以此为基础。
社区驱动,保证了 bug 修复的速度,以及新特性更新的速度。
ctrl
,shift
等按键,大大减少了手指的肌肉损伤。SpaceVim 所有的快捷键都不需要去记忆,有强大的快捷键导航系统来提示每一个按键的具体功能,比如 Normal 模式下按下空格键,将出现如下提示:
这一导航提示将所有以空格为前缀的快捷键分组展示,比如 b
是所以 buffer 相关的快捷键, p
是所有工程管理相关的快捷键。在导航模式下按下
你将在状态栏上看见相应的帮助信息,按键介绍如下:
按键 | 描述 |
---|---|
u |
撤销前一按键 |
n |
导航系统下一页 |
p |
导航系统前一页 |
Neovim 运行在 iTerm2 上,采用 SpaceVim,配色为:base16-solarized-dark
展示了一个通用的前端开发界面,用于开发: JavaScript (jQuery), SASS, and PHP buffers.
图中包含了一个 Neovim 的终端, 一个语法树窗口,一个文件树窗口以及一个 TernJS 定义窗口
想要查阅更多截图,请阅读 issue #415
可通过很多种方式来更新 SpaceVim 的核心文件。建议在更新 SpaceVim 之前,更新一下所有的插件。具体内容如下:
注意:默认,这一特性是禁用的,因为自动更新将会增加 SpaceVim 的启动时间,影响用户体验。如果你需要这一特性,可以将如下加入到用户配置文件中:let g:spacevim_automatic_update = 1
。
启用这一特性后,SpaceVim 将会在每次启动时候检测是否有新版本。更新后需重启 SpaceVim。
使用 :SPUpdate SpaceVim
这一命令,将会打开 SpaceVim 的插件管理器,更新 SpaceVim, 具体进度会在插件管理器 buffer 中展示。
可通过在 SpaceVim 目录中手动执行 git pull
, SpaceVim 在 windows 下默认目录为 ~/vimfilers
, 但在 Linux 下则可使用如下命令:
git -C ~/.SpaceVim pull
.
使用 :SPUpdate
这一命令将会更新所有插件,包括 SpaceVim 自身。当然这一命令也支持参数,参数为插件名称,可同时添加多个插件名称作为参数,同时可以使用 Tab 键来补全插件名称。
这里仅仅是大致罗列了下常用的模块,若要了解关于配置模块更加详细的信息,可阅读 SpaceVim’s layers page,(强烈建议阅读!)
用户配置保存在 ~/.SpaceVim.d/
文件夹。
初次启动 SpaceVim 时,他将提供选择目录,用户需要选择合适自己的配置模板。此时,SpaceVim 将自动在 HOME
目录生成 ~/.SpaceVim.d/init.vim
。
~/.SpaceVim.d/
将被加入 Vim 的运行时路径 &runtimepath
。详情清阅读 :h rtp.
当然,你也可以通过 SPACEVIMDIR
这一环境变量,执定用户配置目录。当然也可以通过软连接连改变目录位置,以便配置备份。
SpaceVim 同时还支持项目本地配置,配置初始文件为,当前目录下的 .SpaceVim.d/init.vim
文件。同时当前目录下的 .SpaceVim.d/
也将被加入到 Vim 运行时路径。
这是一个用户配置文件示例:
" Here are some basic customizations, please refer to the ~/.SpaceVim.d/init.vim
" file for all possible options:
let g:spacevim_default_indent = 3
let g:spacevim_max_column = 80
" Change the default directory where all miscellaneous persistent files go.
" By default it is ~/.cache/vimfiles.
let g:spacevim_plugin_bundle_dir = '~/.cache/vimfiles'
" set SpaceVim colorscheme
let g:spacevim_colorscheme = 'jellybeans'
" Set plugin manager, you want to use, default is dein.vim
let g:spacevim_plugin_manager = 'dein' " neobundle or dein or vim-plug
" use space as ``
let mapleader = "\"
" Set windows shortcut leader [Window], default is `s`
let g:spacevim_windows_leader = 's'
" Set unite work flow shortcut leader [Unite], default is `f`
let g:spacevim_unite_leader = 'f'
" By default, language specific plugins are not loaded. This can be changed
" with the following, then the plugins for go development will be loaded.
call SpaceVim#layers#load('lang#go')
" loaded ui layer
call SpaceVim#layers#load('ui')
" If there is a particular plugin you don't like, you can define this
" variable to disable them entirely:
let g:spacevim_disabled_plugins=[
\ ['junegunn/fzf.vim'],
\ ]
" If you want to add some custom plugins, use these options:
let g:spacevim_custom_plugins = [
\ ['plasticboy/vim-markdown', {'on_ft' : 'markdown'}],
\ ['wsdjeg/GitHub.vim'],
\ ]
" set the guifont
let g:spacevim_guifont = 'DejaVu\ Sans\ Mono\ for\ Powerline\ 11'
更加详细的 SpaceVim 选项可以查阅 :h SpaceVim.
SpaceVim 根据需要定义了很多临时快捷键,这将避免需要重复某些操作时,过多按下 SPC
前置键。当临时快捷键启用时,会在窗口下方打开一个快捷键介绍窗口,提示每一临时快捷键的功能。此外一些格外的辅助信息也将会体现出来。
文本移动临时快捷键:
SpaceVim 集成了多种使用UI插件,如常用的文件树、语法树等插件,配色主题默认采用的是 gruvbox。
SpaceVim 默认的颜色主题采用的是 gruvbox。这一主题有深色和浅色两种。关于这一主题一些详细的配置可以阅读 :h gruvbox.
如果需要修改 SpaceVim 的主题,可以在 ~/.SpaceVim.d/init.vim
中修改 g:g:spacevim_colorscheme
。例如,使用 vim-one with dark colorscheme
let g:spacevim_colorscheme = 'one'
let g:spacevim_colorscheme_bg = 'dark'
快捷键 | 描述 |
---|---|
SPC T n | 切换至下一个随机主题 |
SPC T s | 通过 Unite 选择主题 |
可以在主题模块中查看 SpaceVim 支持的所有主题。
注意:
SpaceVim 在终端下默认使用了真色,因此使用之前需要确认下你的终端是否支持真色,可以阅读 Colours in terminal 了解根多关于真色的信息。
在 SpaceVim 中默认的字体是 DejaVu Sans Mono for Powerline. 如果你也喜欢这一字体,建议将这一字体安装到系统中。如果需要修改 SpaceVim 的字体,可以在用户配置文件中修改 g:spacevim_guifont
,默认值为:
let g:spacevim_guifont = 'DejaVu\ Sans\ Mono\ for\ Powerline\ 11'
如果指定的字体不存在,将会使用系统默认的字体,此外,这一选项在终端下是无效的,终端下修改字体,需要修改终端自身配置。
大多数界面元素可以通过快捷键来隐藏或者显示(这一组快捷键以 t
和 T
开头):
快捷键 | 描述 |
---|---|
SPC t 8 |
高亮所有超过80列的字符 |
SPC t f |
高亮临界列,默认是第80列 |
SPC t h h |
高亮当前行 |
SPC t h i |
高亮代码对齐线 |
SPC t h c |
高亮光标所在列 |
SPC t h s |
启用/禁用语法高亮 |
SPC t i |
切换显示当前对齐(TODO) |
SPC t n |
显示/隐藏行号 |
SPC t b |
切换背景色 |
SPC t t |
打开 Tab 管理器 |
SPC T ~ |
显示/隐藏 buffer 结尾空行行首的 ~ |
SPC T F |
切换全屏(TODO) |
SPC T f |
显示/隐藏 Vim 边框(GUI) |
SPC T m |
显示/隐藏菜单栏 |
SPC T t |
显示/隐藏工具栏 |
状态栏和工具栏是高度定制的模块,提供了如下特性:
快捷键 | 描述 |
---|---|
SPC [1-9] |
跳至制定序号的窗口 |
core#statusline
模块提供了一个高度定制的状态栏,提供如下特性,这一模块的灵感来自于 spacemacs 的状态栏。
默认主题 gruvbox 的状态栏颜色和模式对照表:
模式 | 颜色 |
---|---|
Normal | 灰色 |
Insert | 蓝色 |
Visual | 橙色 |
Replace | 浅绿色 |
以上的这几种模式所对应的颜色取决于不同的主题模式。
一些状态栏元素可以进行动态的切换:
快捷键 | 描述 |
---|---|
SPC t m b |
显示/隐藏电池状态 (需要安装 acpi) |
SPC t m c |
toggle the org task clock (available in org layer)(TODO) |
SPC t m m |
显示/隐藏 SpaceVim 已启用功能 |
SPC t m M |
显示/隐藏文件类型 |
SPC t m n |
toggle the cat! (if colors layer is declared in your dotfile)(TODO) |
SPC t m p |
显示/隐藏鼠标位置信息 |
SPC t m t |
显示/隐藏时间 |
SPC t m d |
显示/隐藏日期 |
SPC t m T |
显示/隐藏状态栏 |
SPC t m v |
显示/隐藏版本控制信息 |
Powerline 字体安装:
SpaceVim 默认使用 DejaVu Sans Mono for Powerline, 为了使状态栏得以正常显示,你需要安装这一字体。如果需要在状态栏中展示其他类型的分割符,则需要安装 powerline extra symbols.
语法检查信息:
状态栏中语法检查信息元素如果被启用了,当语法检查结束后,会在状态栏中展示当前语法错误和警告的数量。
TODO: add a picture
语法检查信息
搜索结果信息:
当使用 /
或 ?
进行搜索时,或当按下 n
或 N
后,搜索结果序号将被展示在状态栏中,类似于 20/22
显示搜索结果总数以及当前结果的序号。具体的效果图如下:
search index in statusline
电池状态信息:
acpi 可展示电池电量剩余百分比.
使用不同颜色展示不同的电池状态:
电池状态 | 颜色 |
---|---|
75% - 100% | 绿色 |
30% - 75% | 黄色 |
0 - 30% | 红色 |
所有的颜色都取决于不同的主题。
状态栏分割符:
可通过使用 g:spacevim_statusline_separator
来定制状态栏分割符,例如使用非常常用的方向箭头作为状态栏分割符:
let g:spacevim_statusline_separator = 'arrow'
SpaceVim 所支持的分割符以及截图如下:
分割符 | 截图 |
---|---|
arrow |
|
curve |
|
slant |
|
nil |
|
fire |
SpaceVim 功能模块:
功能模块可以通过 SPC t m m
快捷键显示或者隐藏。默认使用 Unicode 字符,可通过设置 let g:spacevim_statusline_unicode_symbols = 0
来启用 ASCII 字符。(或许在终端中无法设置合适的字体时,可使用这一选项)。
状态栏中功能模块内的字符显示与否,同如下快捷键功能保持一致:
快捷键 | Unicode | ASCII | 功能 |
---|---|---|---|
SPC t 8 |
⑧ | 8 | 高亮80列之后信息 |
SPC t f |
ⓕ | f | 高亮第80列 |
SPC t s |
ⓢ | s | 语法检查 |
SPC t S |
Ⓢ | S | 拼写检查 |
SPC t w |
ⓦ | w | 行尾空格检查 |
如果只有一个Tab, Buffers 将被罗列在标签栏上,每一个包含:序号、文件类型图标、文件名。如果有不止一个 Tab, 那么所有 Tab 将被罗列在标签栏上。标签栏上每一个 Tab 或者 Baffer 可通过快捷键
进行快速访问,默认的
是 \
。
快捷键 | 描述 |
---|---|
|
跳至标签栏序号 1 |
|
跳至标签栏序号 2 |
|
跳至标签栏序号 3 |
|
跳至标签栏序号 4 |
|
跳至标签栏序号 5 |
|
跳至标签栏序号 6 |
|
跳至标签栏序号 7 |
|
跳至标签栏序号 8 |
|
跳至标签栏序号 9 |
请阅读 unite 和 denite 文档: :h unite
和 :h denite
。
快捷键 | 模式 | 功能描述 |
---|---|---|
Ctrl +h/k/l/r |
Normal | 无效 |
Ctrl +l |
Normal | 刷新界面 |
Tab |
Insert | 下一结果 |
Tab |
Normal | 选择操作 |
Shift + Tab |
Insert | 上一结果 |
Space |
Normal | 标记当前结果 |
Enter |
Normal | 执行默认操作 |
Ctrl +v |
Normal | 在分割窗口中打开 |
Ctrl +s |
Normal | 在垂直分割窗口打开 |
Ctrl +t |
Normal | 在新 Tab 中打开 |
Ctrl + g |
Normal | 推出 Unite/Denite |
jk |
Insert | 离开 Insert 模式 |
r |
Normal | 重命名或者替换搜索内容 |
Ctrl +z |
Normal/insert | 切换窗口布局 |
Ctrl +w |
Insert | 删除前一单词 |
当 Normal 模式下按下前缀键后出现输入延迟,则会在屏幕下方打开一个快捷键导航窗口,提示当前可用的快捷键及其功能描述,目前支持的前缀键有:[SPC]
、[Window]
、[Denite]
、[Unite]
、
、g
、z
。
这些前缀的按键为:
前缀名称 | 用户选项以及默认值 | 描述 |
---|---|---|
[SPC] |
空格键 | SpaceVim 默认前缀键 |
[Window] |
g:spacevim_windows_leader / s |
SpaceVim 默认窗口前缀键 |
[denite] |
g:spacevim_denite_leader / F |
SpaceVim 默认 Denite 前缀键 |
[unite] |
g:spacevim_unite_leader / f |
SpaceVim 默认 Unite 前缀键 |
|
mapleader / \\ |
Vim/neovim 默认前缀键 |
默认情况下,快捷键导航将在输入延迟超过 1000ms 后打开,你可以通过修改 vim 的 'timeoutlen'
选项来修改成适合自己的延迟时间长度。
例如,Normal 模式下按下空格键,你将会看到:
这一导航窗口将提示所有以空格键为前缀的快捷键,并且根据功能将这些快捷键进行了分组,例如 buffer 相关的快捷键都是 b
,工程相关的快捷键都是 p
。在代码导航窗口内,按下
键,可以获取一些帮助信息,这些信息将被显示在状态栏上,提示的是一些翻页和撤销按键的快捷键。
按键 | 描述 |
---|---|
u |
撤销按键 |
n |
向下翻页 |
p |
向上翻页 |
如果要自定义以 [SPC]
为前缀的快捷键,可以使用 SpaceVim#custom#SPC()
,示例如下:
call SpaceVim#custom#SPC('nnoremap', ['f', 't'], 'echom "hello world"', 'test custom SPC', 1)
可以通过 SPC ?
使用 Unite 将当前快捷键罗列出来。然后可以输入快捷键按键字母或者描述,Unite 可以通过模糊匹配,并展示结果。
使用
键或者上下方向键选择你需要的快捷键,回车将执行这一快捷键。
Denite/Unite 是一个强大的信息筛选浏览器,这类似于 emacs 中的 Helm。以下这些快捷键将帮助你快速获取需要的帮助信息:
快捷键 | 描述 |
---|---|
SPC h SPC |
使用 Unite 展示 SpaceVim 帮助文档章节目录 |
SPC h i |
获取光标下单词的帮助信息 |
SPC h k |
使用快捷键导航,展示 SpaceVim 所支持的前缀键 |
SPC h m |
使用 Unite 浏览所有 man 文档 |
报告一个问题:
快捷键 | 描述 |
---|---|
SPC h I |
根据模板展示 Issue 所必须的信息 |
所有可用模块可以通过命令 SPLayer -l
或者快捷键 SPC h l
来展示。
可通过快捷键
列出所有已安装的插件,支持模糊搜索,回车将使用浏览器打开该插件的官网。
如果添加来自于 github.com 的插件,可以 用户名/仓库名
这一格式,将该插件添加到 g:spacevim_custom_plugins
,示例如下:
let g:spacevim_custom_plugins = [
\ ['plasticboy/vim-markdown', {'on_ft' : 'markdown'}],
\ ['wsdjeg/GitHub.vim'],
\ ]
所有的界面元素切换快捷键都是已 [SPC] t
或者 [SPC] T
开头的,你可以在快捷键导航中查阅所有快捷键。
光标的移动默认采用 vi 的默认形式:hjkl
。
快捷键 | 描述 |
---|---|
h |
向左移动光标(Vim 原生功能,无映射) |
j |
向下移动光标(Vim 原生功能,无映射) |
k |
向上移动光标(Vim 原生功能,无映射) |
l |
向右移动光标(Vim 原生功能,无映射) |
H |
光标移至屏幕最上方(Vim 原生功能,无映射) |
L |
光标移至屏幕最下方(Vim 原生功能,无映射) |
SPC j 0 |
跳至行首(并且标记原始位置) |
SPC j $ |
跳至行尾(并且标记原始位置) |
SPC t - |
锁定光标在屏幕中间(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 |
] c |
跳至下一个 vcs hunk |
[ 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 /
|
在统一标签内进行窗口切换 |
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 操作相关快捷键都是已 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) |
快捷键 | 描述 |
---|---|
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 |
在 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 |
复制当前文件,并且显示当前文件路径 |
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 作为默认文件树,需要设置:
" the default value is vimfiler
let g:spacevim_filemanager = 'nerdtree'
SpaceVim 的文件树提供了版本控制信息的借口,但是这一特性需要分析文件夹内容,会使得文件树插件比较慢,因此默认没有打开,如果需要使用这一特性,可向配置文件中加入 let g:spacevim_enable_vimfiler_gitstatus = 1
,启用后的截图如下:
文件树中主要以 hjkl
为核心,这类似于 vifm 中常用的快捷键:
快捷键 | 描述 |
---|---|
or SPC f t |
切换文件树 |
文件树内的快捷键 | |
or h |
移至父目录,并关闭文件夹 |
or j |
向下移动光标 |
or k |
向上移动光标 |
or l |
展开目录,或打开文件 |
Ctrl +j |
未使用 |
Ctrl +l |
未使用 |
E |
未使用 |
. |
切换显示隐藏文件 |
sv |
分屏编辑该文件 |
sg |
垂直分屏编辑该文件 |
p |
预览文件 |
i |
切换至文件夹历史 |
v |
快速查看 |
gx |
使用相关程序执行该文件(TODO) |
' |
切换标签 |
V |
标记该文件 |
Ctrl +r |
刷新页面 |
如果只有一个可编辑窗口,则在该窗口中打开选择的文件,否则则需要制定窗口来打开文件:
快捷键 | 描述 |
---|---|
l or Enter |
打开文件 |
sg |
分屏打开文件 |
sv |
垂直分屏打开文件 |