我目前主要还是在Windows+Linux下开发,目前微软也没有再蠢到拒绝开源和Linux,因此wsl也满足开发者对Linux的基础需要,不管是在Windows下还是Linux下对于vim的使用我也一直没有放弃。
在IntelliJ系列的工具中使用的是ideavim,基础功能加上可选择的ctrl按键功能,使用起来也不会由于忘记一些常用指令而苦恼;而wsl中使用vim的话目前找到了一个好的vim扩展:Spacevim,我感觉它将vim的上手难度大大降低了,而且使用Space按键解决了我经常忘记一些vim指令的烦恼,目前除了安装由于网络因素比较麻烦外,其它的不管是从快捷键还是界面美化我都很满意(我在早期也是自己配置的,也总结了一些将vim打造ide的文章和vim配置文件,但是总是有一些不太满意的地方,目前基本上在wsl上使用已经切换到Spacevim了,space按键+vim的结合是真的很棒)。
GitHub:https://github.com/SpaceVim/SpaceVim
入门指南:https://spacevim.org/cn/quick-start-guide/
自动补全相关(好的补全可以大大提高生产力):https://spacevim.org/cn/layers/autocomplete/
在入门指南中可以找到简单的安装方式,Windows、Linux、macos都可以很方便的安装。
Spacevim的一些配置不太符合我使用习惯,这些是我常见修改的地方,主要也是根据指南中的一些提示修改的,这里记录一下。
vim ~/.SpaceVim.d/init.toml
如果可以翻墙的话还是安装一下ycm这个补全插件,由于很多插件都是从GitHub上下载的,所以难免因为墙的原因失败,多尝试几次。
下面是我目前的init.toml,做下记录:
#=============================================================================
# dark_powered.toml --- dark powered configuration example for SpaceVim
# Copyright (c) 2016-2020 Wang Shidong & Contributors
# Author: Wang Shidong < wsdjeg at 163.com >
# URL: https://spacevim.org
# License: GPLv3
#=============================================================================
# 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 = "arrow"
statusline_iseparator = "arrow"
buffer_index_type = 4
enable_tabline_filetype_icon = true
enable_statusline_mode = false
relativenumber = false
autocomplete_method = "completor"
default_indent = 4
snippet_engine = "ultisnips"
# Enable autocomplete layer
[[layers]]
name = 'autocomplete'
auto_completion_return_key_behavior = "complete"
auto_completion_tab_key_behavior = "smart"
[[layers]]
name = 'shell'
default_position = 'top'
default_height = 30