在天朝这种到处是墙的情况下,就算是神级编辑器vscode也是无能无力。在使用vscode配置golang开发环境可谓是一波三折,vscode中的go插件在自动下载其他依赖插件时会经常出现安装失败的情况,即使是翻墙的情况下也会出错。如何解决呢?下面给出常用的解决办法。
vscode中的terminal中执行go env
时,发现GOPATH、GOBIN与配置的PATH不一致。
原因分析:vscode中的终端使用的bash,所以在配置用户环境变量时需要编辑~/.bash_profile
文件,而不能是~/.zshrc
文件。
解决办法就是在bash_profile
文件中设置GOPATH等变量。
export GOPATH=$HOME/go // 可配置为自己的目录
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN
由于墙以及golang官网访问的相关问题,导致部分Go插件所依赖的工具无法安装。其中Go插件默认依赖的工具(老版本)如下:
go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/lukehoban/go-outline
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v github.com/tpng/gopkgs
go get -u -v github.com/newhook/go-symbols
go get -u -v golang.org/x/tools/cmd/guru
其实新版本中还需要impl、gogetdoc、gotests、gomodifytags等…
其中gorename等需要从golang官网下载的工具会出现time out
的问题。
解决办法是直接从github下载tools源码,并放置在src/golang.org/x下,然后使用go install -v 工具名
进行安装即可。
cd $GOPATH/src/golang.org/x //目录不存在时可以先创建
git clone https://github.com/golang/tools
cd $GOPATH/src
go install -v golang.org/x/tools/cmd/guru // 安装工具,其他同理
安装完成之后,重启vscode即可。
Go插件基于delve开展对go程序的调试,所以需要全局安装delve。安装方法很简单,使用homebrew即可。
brew install go-delve/delve/delve