vim使用coc配置GoLang开发环境

前面我们直接使用原生的vim8和一些插件配置了GoLang开发环境。现在我们换一种更现代的方式,使用LSP插件coc.vim来支持GoLang开发环境。

安装和配置coc.vim请参照文档:https://github.com/neoclide/coc.nvim

核心插件是coc.vim和vim-go

" 安装强大的LSP客户端coc,支持各种语言
Plug 'neoclide/coc.nvim', {'branch': 'release'}

" vim-go是golang的开发插件,项目地址:https://github.com/fatih/vim-go,帮助:help vim-go
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }

coc插件

coc.vim是我们的主角,可以完成代码跳转,自动补全,函数列表等一系列功能,coc.vim是LSP中的client,LSP的server是go官方的软件gopls

至于vim-go,我们使用它一些与go相关的特性,比如编译,测试,gofmt等。分工如下:

安装好coc之后,检查一下状态:

:CocInfo

coc的功能非常齐全,可以这样说,如果coc玩得好,其他什么插件都不需要装,但问题也就来了,齐全带来的后果就是复杂,coc各种复杂的属性,配置,插件,让人没有研究下去的欲望,因此,回到我们的KISS原则,我们只专注于coc核心的功能。

从简单角度出发,我们仅使用coc的以下功能:

  • 自动补全。
  • 定义跳转。出了常规的定义跳转,强大的是跳转到tag被引用的位置。
  • 诊断。可以快速的检查代码错误

通过配置vim中coc相关的参数,就可以支持以上功能,具体配置的文件,见最后完整配置

另外,还要开启language server支持GoLang,在vim中输入:CocConfig,会进入coc的配置文件,在其中输入:

{
  "languageserver": {
    "golang": {
      "command": "gopls",
      "rootPatterns": ["go.mod", ".git/"],
      "filetypes": ["go"]
    }
  }
}

现在coc能够支持Golang了,可以开始补全,跳转,语法检查等工作,就这么简单,你已经拥有了一个强大的GoLang编辑器

有了coc,我们再配置一些好用的插件吧

其他插件

查找功能是一个编辑器必备的,我们主要关心两种:文件查找和文字搜索。有一个强大的选择:FZF

" 查找文件和搜索的工具
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'

剩下再来一个tagbar,用于显示函数列表。添加一个airview,使vim的状态栏花哨一点:

" airline插件,花里胡哨的好看,用处不大
Plug 'vim-airline/vim-airline'

" Tagbar类似于outline, 展示当前文件的函数,变量,类等声明
Plug 'preservim/tagbar'

我们再来一个插件,自动插入代码,这个在不想敲字的时候特别有用,这种插件的专业术语叫snippet。来一个常用的snippet插件吧

" 用于插入代码片段
" ultisnips是snippets的管理器
Plug 'SirVer/ultisnips'

" vim-snippets是具体snippets的定义,可添加自己定义的代码片段
Plug 'honza/vim-snippets'

但这破货需要python3的支持,因此在编译vim的时候,得加上

./configure --enable-python3interp=yes

插件就位,来插入一个funcs然后tab一下试试呢,是不是自动给你添加了参数,括号,省了不少事啊

完整配置

vimrc

Ref

  • https://github.com/neoclide/coc.nvim
  • https://octetz.com/docs/2019/2019-04-24-vim-as-a-go-ide/
  • https://bhupesh-v.github.io/learn-how-to-use-code-snippets-vim-cowboy/



《 “vim使用coc配置GoLang开发环境” 》 有 5 条评论

  1. We live with a dizzying feeling that the ground beneath our feet is constantly changing generic augmentin

  2. 2 In those who require continuous inotropic infusions, annual mortality typically reaches or exceeds 50 can i purchase cheap cytotec without a prescription However, dry eye sensations can last in some patients

  3. A photo on The Times of India website showed a large opening with components and aircraft structure visible inside priligy otc

回复 can i order cheap cytotec prices 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

About Me

一位程序员,会弹吉他,喜欢读诗。
有一颗感恩的心,一位美丽的妻子,两个可爱的女儿
mail: geraldlee0825@gmail.com
github: https://github.com/lisuxiaoqi
medium: https://medium.com/@geraldlee0825