在学习使用vim过程中,被SpaceVim的炫酷界面吸引了,所以直接使用SpaceVim替代了原生的vim。
SpaceVim有详细的安装教程和使用方法,官方中文可以参考SpaceVim中文Guide。
SpaceVim 的默认配置文件位于 ~/.SpaceVim.d/init.toml
。在配置文件,可以自定义众多配置。例如(中文部分是我自己添加的配置):
# All SpaceVim option below [option] section
[options]
# set spacevim theme. by default colorscheme layer is not loaded,
# if you want to use more colorscheme, please load the colorscheme
# layer
colorscheme = "gruvbox"
colorscheme_bg = "dark"
# Disable guicolors in basic mode, many terminal do not support 24bit
# true colors
enable_guicolors = true
# Disable statusline separator, if you want to use other value, please
# install nerd fonts
statusline_separator = "nil"
statusline_iseparator = "bar"
buffer_index_type = 4
windows_index_type = 3
enable_tabline_filetype_icon = false
enable_statusline_mode = false
statusline_unicode = false
# Enable vim compatible mode, avoid changing origin vim key bindings
vimcompatible = true
# 启用相对行号
relativenumber = true
# 目录树显示在左侧
filetree_direction = "left"
# 目录树显示宽度
sidebar_width = 28
# 禁止检查升级
automatic_update = true
# 设置启动函数
bootstrap_before = "myspacevim#before"
# bootstrap_after = "myspacevim#after"
# Enable autocomplete layer
[[layers]]
name = 'lang#c'
enable_clang_syntax_highlight = true
auto_completion_return_key_behavior = "complete"
auto_completion_tab_key_behavior = "cycle"
[[layers]]
name = 'shell'
default_position = 'top'
default_height = 30
# 设置tab为四个空格
[options]
default_indent = 4
expand_tab = true
# 滚动条
[[layers]]
name = "ui"
enable_scrollbar = true
个人认为,不改动原始配置,设置自定义启动函数覆盖原始配置更合理,设置方法如下:
在 [options]
中添加自定义启动函数:
# 设置启动函数
bootstrap_before = "myspacevim#before"
# bootstrap_after = "myspacevim#after"
两种启动函数差异,参考官方说明 启动函数一节。我使用了 bootstrap_before
作为启动函数。
然后需要新建一个名为 myspacevim.vim
的文件,放在 vim 的 autoload
文件夹,一般位于 ~/.vim/autoload/myspacevim.vim
。
myspacevim.vim
具体内容如下:
function! myspacevim#before() abort
let g:neomake_c_enabled_makers = ['clang']
nnoremap jk <esc>
set mouse=
set splitright
set splitbelow
set encoding=utf-8
set smartindent
endfunction
function! myspacevim#after() abort
iunmap jk
endfunction
我的一些配置解释如下:
# 设置鼠标为复制模式
set mouse=
# 设置左右分割窗口时,新窗口在右侧
set splitright
# 设置上下分割窗口时,窗口在下册
set splitbelow
# 设置编码格式
set encoding=utf-8
# 设置智能缩进
set smartindent
可以根据官方guide做更多个性化配置。