vscode golang详细配置(持续更新)

每次配好后,长时间不用动,下次再配置的时候仍然不熟悉,特此记录以备忘。

直接应用

①gopath系统环境变量设置:

这个设置以后,系统默认的go环境就指定好了,如果不重新指定,则默认识别的都是这里设置的(包括代码提示引用的路径、三方包go get安装的路径)。常用于统一存放第三方包和安装的bin插件。

  • mac系统在~/.bash_profile文件中添加:
# global为默认go项目,用作系统默认go环境
GOPATH="/Users/shuai/Documents/global"
export GOPATH
export PATH=$GOPATH:$PATH
export PATH=$GOPATH/bin:$PATH
  • windows系统在环境变量中添加:GOPATH新变量,并将GOPATH/bin追加到系统变量PATH路径里。

②vscode>“用户设置”,第三方包依赖的插件路径

由于vscode支持为每个项目单独设置环境:“工作区设置”。为了避免每个工作区重复下载依赖的插件,可以手动指定插件统一依赖于系统环境指定的GOPATH(我们安装的包默认也是放在这里的),参考①。

"go.toolsGopath":"/Users/shuai/Documents/global"

③vscode>打开项目的“工作区设置”,为每个项目设置单独的gopath:

"go.gopath": "/Users/shuai/Documents/project_a"

④安装vscode的插件。

go get xxx

翻墙的插件则需要手动下载后放到系统环境变量指定的GOPATH的src下,按目录建好,然后执行go install。

以上操作完成即可正常开发,下面是详解。


GOPATH讲解

gopath分为系统环境和vscode环境。

  • 系统环境
    通过命令go env可以查看,设置的方法就是添加环境变量GOPATH:
//mac环境下在~/.bash_profile文件中添加
GOPATH=指定路径
export GOPATH
export PATH=$GOPATH:$PATH //将GOPATH放到环境变量中,也可以不放。
  • vscode环境
    如果vscode不指定go.gopath,则默认使用系统环境GOPATH。
// “用户设置”:全局环境,所有打开的窗口项目公用的。
// “工作区设置”:打开项目的独立设置,右上角下拉菜单选择。
"go.gopath": "指定路径"

GOBIN讲解

gobin的作用:用于指定编译后生成的可执行文件所在的目录。
1. 如果不指定GOBIN,编译后的可执行文件默认放在GOPATH/bin下。
2. 指定GOBIN,则无论GOPATH设置为什么,都只会放在指定的GOBIN下。

注:通常情况下,我们不特别设置GOBIN,让它放在GOPATH/bin下就好。同时为了让系统全局识别可执行文件,还需要将GOPATH/bin放到环境变量中。

# 将GOPATH/bin添加到PATH系统环境变量中
export PATH=$GOPATH/bin:$PATH

注:坑点

  • 我们知道go编译生成的bin文件会默认放在GOPATH/bin下,那么如果vscode为每个项目单独指定了(“工作区设置”)自己的“go.gopath”,这就覆盖了系统环境的GOPATH。
  • 而我们命令行中go getgo install安装的bin文件默认是放在系统环境GOPATH/bin下。
  • 因此项目单独设置的“go.gopath”下的bin文件夹下是没有那些在系统环境下已经安装好的bin文件的,于是vscode会提示你当前这个独立设置的项目缺少依赖的第三方包,需要安装。
  • 但其实我们系统环境GOPATH/bin下已经装过了,你可以拷贝到单独项目的gopath/bin下。更简便的做法像上面【直接应用】里做的那样,vscode>用户设置里,设置”go.toolsGopath”即可。
"go.toolsGopath": "系统环境GOPATH" // 系统环境GOPATH/bin作为插件识别路径

vscode的go插件安装

vscode默认会提示安装缺少的插件,但有些插件需要翻墙,需要手动安装。
不需要翻墙的可直接go get,否则需要手动下载对应的插件包,放到系统GOPATH/src下,并建立对应的目录结构,执行go install。

go install github.com/nsf/gocode
go install github.com/rogpeppe/godef
go install github.com/zmb3/gogetdoc
go install github.com/golang/lint/golint
go install github.com/lukehoban/go-outline
go install sourcegraph.com/sqs/goreturns
go install golang.org/x/tools/cmd/gorename
go install github.com/tpng/gopkgs
go install github.com/newhook/go-symbols
go install github.com/cweill/gotests/...
go install golang.org/x/tools/cmd/guru
//如果需要在vscode中调试go程序,需要下载安装dlv
go install github.com/derekparker/delve/cmd/dlv

至此属于go的vscode环境设置完成。

猜你喜欢

转载自blog.csdn.net/gl5773477/article/details/78881841