• 优雅的界面
    • 颜色主题
    • 字体
    • 界面元素切换
    • 状态栏
    • 标签栏

    优雅的界面

    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> 跳至光标所对应的标签窗口