前言
又是周末, 春节之后,第一个工作周, 因新型冠状病毒肺炎疫情的发展非常严重, 所有公司,开启了远程在家办公方式。
又到了学习补充知识的时刻, 1年之前, 了解了基本的go语法就没在学习, 看着今年的计划, go 列入学习清单中。
Vim8 安装 vim-go 以 Vundle 方式安装 Vim 插件
准备工作, coc.nvim 插件安装依赖于 Node (nodejs >= 8.10.0 on MacOS). 在终端下执行如下命令
$ curl -sL install-node.now.sh/lts | bash
# 查看 node 版本
$ node -v
# print: v12.15.0
安装 vim-go, coc.nvim 编辑 ~/.vimrc
文件, 将下面的代码加入到文件中,保存(:w), 执行(:PluginInstall)
Plugin 'fatih/vim-go'
" 从源码安装
Plugin 'neoclide/coc.nvim', {'do': 'yarn install --frozen-lockfile'}
出现如下问题:
关闭刚刚操作的终端, 重新打开 ~/.vimrc
显示如下: [coc.nvim] javascript file not found
最终解决方案: Using vim8’s native package manager , 在终端执行如下命令
# for vim8
mkdir -p ~/.vim/pack/coc/start
cd ~/.vim/pack/coc/start
curl --fail -L https://github.com/neoclide/coc.nvim/archive/release.tar.gz|tar xzfv -
# for neovim
mkdir -p ~/.local/share/nvim/site/pack/coc/start
cd ~/.local/share/nvim/site/pack/coc/start
curl --fail -L https://github.com/neoclide/coc.nvim/archive/release.tar.gz|tar xzfv -
保存(:w), 重新执行(:PluginInstall). 关闭终端, 重新打开 ~/.vimrc
没有报错
# for vim8
mkdir -p ~/.vim/pack/coc/start
cd ~/.vim/pack/coc/start
curl --fail -L https://github.com/neoclide/coc.nvim/archive/release.tar.gz|tar xzfv -
# for neovim
mkdir -p ~/.local/share/nvim/site/pack/coc/start
cd ~/.local/share/nvim/site/pack/coc/start
curl --fail -L https://github.com/neoclide/coc.nvim/archive/release.tar.gz|tar xzfv -
在编辑 ~/.vimrc
文件时, 执行(:GoInstallBinaries) 安装 go 相关工具时, 因为网络问题, gopls 死活安装不上。一顿查找以及尝试,总结有3种方式.
(1): 搭梯子[没有]
(2): 使用 get 命令安装[已尝试且有效]
go get github.com/klauspost/asmfmt/cmd/asmfmt
go get github.com/go-delve/delve/cmd/dlv
.....
(3): 使用 gopm 安装(未尝试)
查看 vim-go 安装需要的工具,执行如下命令
vim ~/.vim/bundle/vim-go/plugin/go.vim
第48 行如下
let s:packages = {
\ 'asmfmt': ['github.com/klauspost/asmfmt/cmd/asmfmt'],
\ 'dlv': ['github.com/go-delve/delve/cmd/dlv'],
\ 'errcheck': ['github.com/kisielk/errcheck'],
\ 'fillstruct': ['github.com/davidrjenni/reftools/cmd/fillstruct'],
\ 'gocode': ['github.com/mdempsky/gocode', {'windows': ['-ldflags', '-H=windowsgui']}],
\ 'gocode-gomod': ['github.com/stamblerre/gocode'],
\ 'godef': ['github.com/rogpeppe/godef'],
\ 'gogetdoc': ['github.com/zmb3/gogetdoc'],
\ 'goimports': ['golang.org/x/tools/cmd/goimports'],
\ 'golint': ['golang.org/x/lint/golint'],
\ 'gopls': ['github.com/golang/tools/gopls'],
\ 'gometalinter': ['github.com/alecthomas/gometalinter'],
\ 'golangci-lint': ['github.com/golangci/golangci-lint/cmd/golangci-lint'],
\ 'gomodifytags': ['github.com/fatih/gomodifytags'],
\ 'gorename': ['golang.org/x/tools/cmd/gorename'],
\ 'gotags': ['github.com/jstemmer/gotags'],
\ 'guru': ['golang.org/x/tools/cmd/guru'],
\ 'impl': ['github.com/josharian/impl'],
\ 'keyify': ['honnef.co/go/tools/cmd/keyify'],
\ 'motion': ['github.com/fatih/motion'],
\ 'iferr': ['github.com/koron/iferr'],
\ }
在执行第二步骤(2)时,执行到 go get github.com/golang/tools/gopls
因超时无法安装. 最终解决方案如下
在终端下, 输入如下命令
# 1. 在本地Go环境下创建 Go-zh 文件夹并进入到 Go-zh
mkdir -p $GOPATH/github.com/Go-zh/
cd $GOPATH/github.com/Go-zh/
# 2. 安装 tools 工具开始安装相关工具
git clone https://github.com/Go-zh/tools.git
go install github.com/Go-zh/tools/cmd/guru
go install github.com/Go-zh/tools/cmd/goimports
go install github.com/Go-zh/tools/cmd/gorename
# 最后执行
go install github.com/Go-zh/tools/cmd/gopls
⚠️,安装完go依赖工具之后, 在打开 vim ~/.vimrc
执行(:GoInstallBinaries), 大功告成, 开始愉快的写go ~~
教程
1. Jetbrains到期?试试 coc.nvim 征服 vim/neovim 补全
2. could not find gopls