SpaceVim 这一项目起源于 2016 年 12 月份,于 2025 年 2 月 21 日停止维护。
项目的初衷
早期,开发这个项目的时候,是想做一个开箱即用的 Vim 配置,类似于 spacemacs 那样, 把不同语言功能所需要的配置及插件都放到一个模块里面。使用者不再需要自己配置各种插件, 只需要简单地启用对应语言模块就可以快速搭建 Vim 的开发环境。
遇到的问题
随着功能越来越多,代码越来越臃肿,速度也变得越来越慢。如果查看 git-log 的话,不难发现, 很大一部分内容是做速度的优化。
甚至,我也使用 Lua 重写的相当一部分的内置插件,包括但不限于:task, iedit, code-runner, leaderguide。
但是即便是使用 Lua 进行了重写,但是总的框架使用的是 Vim Script, 调用的时候还是使用 VimL 去调用 Lua 的代码,例如:
func! SpaceVim#test(...)
lua require('task').start(require('spacevim').eval('a:000'))
endf
这样的话速度还是无法发挥到极致。
停止维护的原因
- 想使用纯 Lua 来写 Neovim 配置(nvim-config),不再兼容 Vim,因为我也很少再使用 Vim 了。
- 不想做 Neovim 老版本的兼容支持
- 单个功能插件独立维护,便于直接使用,我把原先 spacevim 中内置的很多功能, 做成了独立的 Neovim 插件(我的插件列表),这样如果喜欢 spacevim 中某个功能的用户,还可以继续单独使用。