优雅的界面
SpaceVim 集成了多种使用 UI 插件,如常用的文件树、语法树等插件,配色主题默认采用的是 gruvbox。
颜色主题
默认的颜色主题采用的是 gruvbox。这一主题有深色和浅色两种。关于这一主题一些详细的配置可以阅读 :h gruvbox
。
如果需要修改 SpaceVim 的主题,可以在 ~/.SpaceVim.d/init.toml
中修改 colorscheme
。例如,使用 Vim 自带的内置主题 desert
:
[options]
colorscheme = "desert"
colorscheme_bg = "dark"
快捷键 | 描述 |
---|---|
SPC T n |
切换至下一个随机主题 |
SPC T s |
通过 Unite 选择主题 |
可以在主题模块中查看 SpaceVim 支持的所有主题。
注意:
SpaceVim 在终端下默认使用了真色,因此使用之前需要确认下你的终端是否支持真色。可以阅读 Colours in terminal 了解根多关于真色的信息。
如果你的终端不支持真色,可以在 SpaceVim 用户配置 [options]
中禁用真色支持:
enable_guicolors = false
字体
在 SpaceVim 中默认的字体是 DejaVu Sans Mono for Powerline.如果你也喜欢这一字体,建议将这一字体安装到系统中。如果需要修改 SpaceVim 的字体,可以在用户配置文件中修改 guifont
,默认值为:
guifont = "DejaVu\ Sans\ Mono\ for\ Powerline\ 11"
如果指定的字体不存在,将会使用系统默认的字体,此外,这一选项在终端下是无效的,终端下修改字体,需要修改终端自身配置。
界面元素切换
大多数界面元素可以通过快捷键来隐藏或者显示(这一组快捷键以 t
和 T
开头):
快捷键 | 描述 |
---|---|
SPC t 8 |
高亮所有超过80列的字符 |
SPC t f |
高亮临界列,默认 max_column 是第 120 列 |
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 |
显示/隐藏工具栏 |
状态栏
core#statusline
模块提供了一个高度定制的状态栏,提供如下特性,这一模块的灵感来自于 spacemacs 的状态栏。
- 展示窗口序列号
- 通过不同颜色展示当前模式
- 展示搜索结果序列号
- 显示/隐藏语法检查信息
- 显示/隐藏电池信息
- 显示/隐藏 SpaceVim 功能启用状态
- 显示版本控制信息(需要 git 和 VersionControl 模块)
快捷键 | 描述 |
---|---|
SPC [1-9] |
跳至制定序号的窗口 |
默认主题 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 |
显示/隐藏版本控制信息 |
nerd 字体安装:
SpaceVim 默认使用 nerd fonts,可参阅其安装指南进行安装。
语法检查信息:
状态栏中语法检查信息元素如果被启用了,当语法检查结束后,会在状态栏中展示当前语法错误和警告的数量。
搜索结果信息:
当使用 /
或 ?
进行搜索时,或当按下 n
或 N
后,搜索结果序号将被展示在状态栏中,类似于 20/22
显示搜索结果总数以及当前结果的序号。具体的效果图如下:
电池状态信息:
acpi 可展示电池电量剩余百分比.
使用不同颜色展示不同的电池状态:
电池状态 | 颜色 |
---|---|
75% - 100% | 绿色 |
30% - 75% | 黄色 |
0 - 30% | 红色 |
所有的颜色都取决于不同的主题。
状态栏分割符:
可通过使用 statusline_separator
来定制状态栏分割符,例如使用非常常用的方向箭头作为状态栏分割符:
statusline_separator = 'arrow'
SpaceVim 所支持的分割符以及截图如下:
分割符 | 截图 |
---|---|
arrow |
|
curve |
|
slant |
|
nil |
|
fire |
SpaceVim 功能模块:
功能模块可以通过 SPC t m m
快捷键显示或者隐藏。默认使用 Unicode 字符,可通过设置 statusline_unicode_symbols = false
来启用 ASCII 字符。(或许在终端中无法设置合适的字体时,可使用这一选项)。
状态栏中功能模块内的字符显示与否,同如下快捷键功能保持一致:
快捷键 | Unicode | ASCII | 功能 |
---|---|---|---|
SPC t 8 |
⑧ | 8 | 高亮指定列后所有字符 |
SPC t f |
ⓕ | f | 高亮指定列字符 |
SPC t s |
ⓢ | s | 语法检查 |
SPC t S |
Ⓢ | S | 拼写检查 |
SPC t w |
ⓦ | w | 行尾空格检查 |
状态栏的颜色
当前版本的状态栏支持 gruvbox
/molokai
/nord
/one
/onedark
,如果你需要使用其他主题,可以通过以下木板来设置:
" the theme colors should be
" [
" \ [ a_guifg, a_guibg, a_ctermfg, a_ctermbg],
" \ [ b_guifg, b_guibg, b_ctermfg, b_ctermbg],
" \ [ c_guifg, c_guibg, c_ctermfg, c_ctermbg],
" \ [ z_guibg, z_ctermbg],
" \ [ i_guifg, i_guibg, i_ctermfg, i_ctermbg],
" \ [ v_guifg, v_guibg, v_ctermfg, v_ctermbg],
" \ [ r_guifg, r_guibg, r_ctermfg, r_ctermbg],
" \ [ ii_guifg, ii_guibg, ii_ctermfg, ii_ctermbg],
" \ [ in_guifg, in_guibg, in_ctermfg, in_ctermbg],
" \ ]
" group_a: window id
" group_b/group_c: stausline sections
" group_z: empty area
" group_i: window id in insert mode
" group_v: window id in visual mode
" group_r: window id in select mode
" group_ii: window id in iedit-insert mode
" group_in: windows id in iedit-normal mode
function! SpaceVim#mapping#guide#theme#gruvbox#palette() abort
return [
\ ['#282828', '#a89984', 246, 235],
\ ['#a89984', '#504945', 239, 246],
\ ['#a89984', '#3c3836', 237, 246],
\ ['#665c54', 241],
\ ['#282828', '#83a598', 235, 109],
\ ['#282828', '#fe8019', 235, 208],
\ ['#282828', '#8ec07c', 235, 108],
\ ['#282828', '#689d6a', 235, 72],
\ ['#282828', '#8f3f71', 235, 132],
\ ]
endfunction
这一模板是 gruvbox 主题的,如果你需要在切换主题是,状态栏都使用同一种颜色主题,可以设置 custom_color_palette
:
custom_color_palette = [
["#282828", "#a89984", 246, 235],
["#a89984", "#504945", 239, 246],
["#a89984", "#3c3836", 237, 246],
["#665c54", 241],
["#282828", "#83a598", 235, 109],
["#282828", "#fe8019", 235, 208],
["#282828", "#8ec07c", 235, 108],
["#282828", "#689d6a", 235, 72],
["#282828", "#8f3f71", 235, 132],
]
标签栏
如果只有一个Tab, Buffers 将被罗列在标签栏上,每一个包含:序号、文件类型图标、文件名。如果有不止一个 Tab, 那么所有 Tab 将被罗列在标签栏上。标签栏上每一个 Tab 或者 Baffer 可通过快捷键 <Leader> number
进行快速访问,默认的 <Leader>
是 \
。
快捷键 | 描述 |
---|---|
<Leader> 1 |
跳至标签栏序号 1 |
<Leader> 2 |
跳至标签栏序号 2 |
<Leader> 3 |
跳至标签栏序号 3 |
<Leader> 4 |
跳至标签栏序号 4 |
<Leader> 5 |
跳至标签栏序号 5 |
<Leader> 6 |
跳至标签栏序号 6 |
<Leader> 7 |
跳至标签栏序号 7 |
<Leader> 8 |
跳至标签栏序号 8 |
<Leader> 9 |
跳至标签栏序号 9 |
标签栏上也支持鼠标操作,左键可以快速切换至该序号,中键删除该标签。该特性只支持 neovim,并且需要 has('tablineat')
特性。
按键 | 描述 |
---|---|
<Mouse-left> |
掉至标签该序号标签 |
<Mouse-middle> |
删除该序号标签 |
标签管理器
可使用 SPC t t
打开内置的标签管理器,标签管理器内的快捷键如下:
按键 | 描述 |
---|---|
o |
展开或关闭标签目录 |
r |
重命名光标下的标签页 |
n |
在光标位置下新建命名标签页 |
N |
在光标位置下新建匿名标签页 |
x |
删除光标下的标签页 |
<C-S-Up> |
向上移动光标下的标签页 |
<C-S-Down> |
向下移动光标下的标签页 |
<Enter> |
跳至光标所对应的标签窗口 |