从官网下载压缩版vscode: https://code.visualstudio.com/Download
先安装go-sdk,设置阿里云作为下载go依赖库的代理(避免被墙导致有些依赖无法下载):
go env -w GOPROXY=http://mirrors.aliyun.com/goproxy/
解压缩版vscode的zip文件,然后在Code.exe同级目录下创建data目录,这样插件即可默认安装到./data/extensions目录下,用户数据保存在到./data/user-data目录下
若删除data目录下所有文件和目录,则相当于还原为绿色版最开始版本
安装go插件
vscode搜索go插件,第一个插件就是vscode-go,对应官网:https://github.com/golang/vscode-go
集成go-sdk和vscode
通过如图所属齿轮按钮进入GO插件设置界面,或直接打开./data/user-data/User/settings.json
添加如下配置:
添加如下配置:
{
"go.alternateTools": {},
"go.buildOnSave": "workspace",
"go.lintOnSave": "package",
"go.vetOnSave": "package",
"go.buildTags": "",
"go.buildFlags": [],
"go.lintFlags": [],
"go.vetFlags": [],
"go.coverOnSave": false,
"go.useCodeSnippetsOnFunctionSuggest": false,
"go.formatTool": "goreturns",
"go.goroot": "D:\\Go",
"go.gopath": "C:\\Users\\Administrator\\go",
"go.toolsGopath":"D:\\Go\\vscode\\data\\code\\",
"go.gocodeAutoBuild": false,
"go.autocompleteUnimportedPackages": true,
"go.gocodePackageLookupMode": "go",
"go.gotoSymbol.includeImports": true,
"go.inferGopath": true,
"go.useCodeSnippetsOnFunctionSuggestWithoutType": true
}
在./data目录新建code目录作为go工程目录,此路径作为GOPATH路径, 再在code文件夹下建pkg和bin目录,pkg存放当前项目依赖包,bin存放当前项目编译好的可执行文件
在code文件夹下建testProject工程目录,vscode终端进入testProject目录, 执行: go mod init com.yussion.test/hello,不然打开test.go会提示go: cannot find main module; see 'go help modules'
在testProject工程目录新建test.go程序
package main
import "fmt"
func main() {
fmt.Printf("Hello word")
}
保存时vscode右下角提示需要安装go开发工具,先设置代理,不然被墙会导致安装go开发工具失败
go env -w GO111MODULE=on #模块支持,使用模块时,GOPATH是无意义的,不过它还是会把下载的依赖存在$GOPATH/src/mod中,也会把go install结果放在$GOPATH/bin中
go env -w GOPROXY=https://goproxy.io,direct #下载开发工具或依赖库的代理网站
重新打开Vscode -> 打开test.go文件,按vscode右下角提示需要安装go开发工具,点击install all即可将所有开发工具安装成功
开发工具将会安装到"go.toolsGopath":"D:\\Go\\vscode\\data\\code\\"指定的路径下。
若发现打开test.go源码,package main显示错误,并提示$GOPATH/go.mod exists but should not
原因是开启模块支持后,不能与GOPATH共存,所以GOPATH不要指定为项目目录,settings.json可指定为系统默认的GOPATH:C:\Users\Administrator\go
搜索并安装code runner插件,重启vscode后发现右上角出现三角形图标,点击即可运行go程序
安装调试工具:
go get -u github.com/go-delve/delve/cmd/dlv
ctrl+shift+p 输入 Debug: Open launch.json 打开 launch.json 文件,如果第一次打开,会新建一个配置文件,修改内容见如下截图
点击左侧Debug按钮即可执行本地调试
附最后测试工程目录结构:
=================================================================================
用vscode的自动代码提示,发现太慢了,隔3,4秒才会出提示,所以换为Google推荐的 gopls来代替。
Go1.14版本之后,都推荐使用go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。(网上有些教程适用于1.11版本之前。)
默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct,由于国内访问不到https://proxy.golang.org,所以我们需要换一个PROXY,这里推荐使用https://goproxy.io或https://goproxy.cn。
可以执行下面的命令修改GOPROXY:go env -w GOPROXY=https://goproxy.cn,direct
打开 VS Code 的setting, 搜索 go.useLanguageServe, 并勾选,然后会提示install,点击install安装即可。如果安装失败,则检查前面代理设置是否生效。
然后在setting.json配置文件末尾追加如下配置即可实现代码提示
"go.useLanguageServer": true,
"[go]": {
"editor.snippetSuggestions": "none",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true,
}
},
"gopls": {
"usePlaceholders": true,
"completeUnimported": true,
"deepCompletion": true,
},
"files.eol": "\n",