![e4188a1c8f9942c1be925668e10323d1.png](https://i-blog.csdnimg.cn/blog_migrate/70be09e07a74868cf79b51bc41ee4186.jpeg)
前因
这段话你可能看不懂如果你不是个gopher 直跳主题就好^_^
继上篇文章我做了一次init.vim的拆分,其实目的是已经达到了。但是我最近又把它细化了,写了几年go,1.10之前的gocode是让人舒适的,但是1.10之后调整了缓存等,nsf不在维护gocode,于是google的工作人员接手了,添加的-souce特性让我崩溃,从源码获取补全信息?可想能慢到什么程度,不然你要每次手动go install -i 来生成.a的文件供gocode寻找,于是我准备切换使用lsp试试。
切换lsp 的解决方案有3种:
- 使用LanguageClient-neovim (好像是国人写的) 配合 deoplete 或者 ncm2 (国人写的)
- 使用coc (作者是赵启明 大佬)
- deoplete-tabnine 它也是支持lsp的
正好想试试coc,所以准备折腾一下,结果我发现上次拆分玩的配置还是不太好维护,可能装的插件太多了,上篇文章 适用于插件较少的配置 20个左右?它表现的就很好。所以我就继续拆了一下。
Module init.vim
init.vim的模块
- dein
- plugins.toml 正常加载插件
- plugins-lazy.toml 懒加载插件(基于某些命令或文件格式等加载插件)
- plugins
- 插件配置
- general
- vim设置
- mappings
- 键位映射设置,(注意:leader和mapleader必须加载在插件前)
- filetype
- 文件格式设置
- autoload
- utils.vim --> airlinetabline 函数
现在的样子,这样看起来想比之前的更加清爽了,也方便维护了
![ffd013666fac880343301b19815a7b65.png](https://i-blog.csdnimg.cn/blog_migrate/b4f8e31fda4f8be6f41f56bf197926c3.jpeg)
然后重写了一下init.vim 也就是简单的写了个函数:
![b43b7bd44e801105d93865210c80e009.png](https://i-blog.csdnimg.cn/blog_migrate/ad3f468e7bd2d445b13eb82c1dd0da06.jpeg)
至此就大功告成了,看到现在的配置目录简直是舒服!!!
关于coc与deoplete
coc确实集成了很多东西,而且配置简单,易上手,性能优秀,最近用coc写react的时候确实很舒服!!!
ncm2我没用过,所以不太清楚,关于coc与deoplete是有区别的,看似都在做一件事,其实deoplete是个自动完成补全的框架,而coc 更像是 all in one package approach for LSP。最近看到说补全速度的。deoplete进行了优化,说实话我之前很长用过很长一段时间deoplete,切换coc,在速度上我是没什么感觉哪个更快哪个更慢。
所以这2个插件都是五星推荐: ★★★★★
或者你可以像我一样 vim 和neovim都用,2个配置,一个deoplete 一个coc。鱼和熊掌兼得了
taigacute/mydotfilesgithub.com![b1e93f69339eb83c086256e14aad0efb.png](https://i-blog.csdnimg.cn/blog_migrate/16c4050011a5df589b35412ba3f8de01.jpeg)
最后附图我的配置
![215d74f8bafd2c81671b09cc8d224cd2.png](https://i-blog.csdnimg.cn/blog_migrate/4f51d3b06e13622fea599a7509c7eeb5.jpeg)