优雅的界面

SpaceVim 集成了多种使用 UI 插件,如常用的文件树、语法树等插件,配色主题默认采用的是 gruvbox。

颜色主题

默认的颜色主题采用的是 gruvbox。这一主题有深色和浅色两种。关于这一主题一些详细的配置可以阅读 :h gruvbox

如果需要修改 SpaceVim 的主题,可以在 ~/.SpaceVim.d/init.toml 中修改 colorscheme。例如,使用 Vim 自带的内置主题 desert:

  1. [options]
  2. colorscheme = "desert"
  3. colorscheme_bg = "dark"
快捷键 描述
SPC T n 切换至下一个随机主题
SPC T s 通过 Unite 选择主题

可以在主题模块中查看 SpaceVim 支持的所有主题。

注意:

SpaceVim 在终端下默认使用了真色,因此使用之前需要确认下你的终端是否支持真色。可以阅读 Colours in terminal 了解根多关于真色的信息。

如果你的终端不支持真色,可以在 SpaceVim 用户配置 [options] 中禁用真色支持:

  1. enable_guicolors = false

字体

在 SpaceVim 中默认的字体是 DejaVu Sans Mono for Powerline.如果你也喜欢这一字体,建议将这一字体安装到系统中。如果需要修改 SpaceVim 的字体,可以在用户配置文件中修改 guifont,默认值为:

  1. guifont = "DejaVu\ Sans\ Mono\ for\ Powerline\ 11"

如果指定的字体不存在,将会使用系统默认的字体,此外,这一选项在终端下是无效的,终端下修改字体,需要修改终端自身配置。

界面元素切换

大多数界面元素可以通过快捷键来隐藏或者显示(这一组快捷键以 tT 开头):

快捷键 描述
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,可参阅其安装指南进行安装。

语法检查信息:

状态栏中语法检查信息元素如果被启用了,当语法检查结束后,会在状态栏中展示当前语法错误和警告的数量。

搜索结果信息:

当使用 /? 进行搜索时,或当按下 nN 后,搜索结果序号将被展示在状态栏中,类似于 20/22 显示搜索结果总数以及当前结果的序号。具体的效果图如下:

search status

电池状态信息:

acpi 可展示电池电量剩余百分比.

使用不同颜色展示不同的电池状态:

电池状态 颜色
75% - 100% 绿色
30% - 75% 黄色
0 - 30% 红色

所有的颜色都取决于不同的主题。

状态栏分割符:

可通过使用 statusline_separator 来定制状态栏分割符,例如使用非常常用的方向箭头作为状态栏分割符:

  1. statusline_separator = 'arrow'

SpaceVim 所支持的分割符以及截图如下:

分割符 截图
arrow separator-arrow
curve separator-curve
slant separator-slant
nil separator-nil
fire separator-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,如果你需要使用其他主题,可以通过以下木板来设置:

  1. " the theme colors should be
  2. " [
  3. " \ [ a_guifg, a_guibg, a_ctermfg, a_ctermbg],
  4. " \ [ b_guifg, b_guibg, b_ctermfg, b_ctermbg],
  5. " \ [ c_guifg, c_guibg, c_ctermfg, c_ctermbg],
  6. " \ [ z_guibg, z_ctermbg],
  7. " \ [ i_guifg, i_guibg, i_ctermfg, i_ctermbg],
  8. " \ [ v_guifg, v_guibg, v_ctermfg, v_ctermbg],
  9. " \ [ r_guifg, r_guibg, r_ctermfg, r_ctermbg],
  10. " \ [ ii_guifg, ii_guibg, ii_ctermfg, ii_ctermbg],
  11. " \ [ in_guifg, in_guibg, in_ctermfg, in_ctermbg],
  12. " \ ]
  13. " group_a: window id
  14. " group_b/group_c: stausline sections
  15. " group_z: empty area
  16. " group_i: window id in insert mode
  17. " group_v: window id in visual mode
  18. " group_r: window id in select mode
  19. " group_ii: window id in iedit-insert mode
  20. " group_in: windows id in iedit-normal mode
  21. function! SpaceVim#mapping#guide#theme#gruvbox#palette() abort
  22. return [
  23. \ ['#282828', '#a89984', 246, 235],
  24. \ ['#a89984', '#504945', 239, 246],
  25. \ ['#a89984', '#3c3836', 237, 246],
  26. \ ['#665c54', 241],
  27. \ ['#282828', '#83a598', 235, 109],
  28. \ ['#282828', '#fe8019', 235, 208],
  29. \ ['#282828', '#8ec07c', 235, 108],
  30. \ ['#282828', '#689d6a', 235, 72],
  31. \ ['#282828', '#8f3f71', 235, 132],
  32. \ ]
  33. endfunction

这一模板是 gruvbox 主题的,如果你需要在切换主题是,状态栏都使用同一种颜色主题,可以设置 custom_color_palette

  1. custom_color_palette = [
  2. ["#282828", "#a89984", 246, 235],
  3. ["#a89984", "#504945", 239, 246],
  4. ["#a89984", "#3c3836", 237, 246],
  5. ["#665c54", 241],
  6. ["#282828", "#83a598", 235, 109],
  7. ["#282828", "#fe8019", 235, 208],
  8. ["#282828", "#8ec07c", 235, 108],
  9. ["#282828", "#689d6a", 235, 72],
  10. ["#282828", "#8f3f71", 235, 132],
  11. ]

标签栏

如果只有一个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> 跳至光标所对应的标签窗口