vscode安装Go插件

image.png

vscode自动提示需要安装插件,点击install all

  1. Tools environment: GOPATH=D:\go-project
  2. Installing 11 tools at D:\go-project\bin in module mode.
  3. gopkgs
  4. go-outline
  5. gotests
  6. gomodifytags
  7. impl
  8. goplay
  9. dlv
  10. dlv-dap
  11. staticcheck
  12. gopls
  13. goimports

安装失败,被墙
image.png

同样的,正确的安装方式

vscode
ctrl+shift+p
输入: Go install
选择Install/Update Tools
image.png
勾选安装所有插件
image.png
这样安装跟点击vscode提示安装 install all是一样的,不会成功

  1. connection failed because connected host has failed to respond.

推荐两个方法:
1、开国外vpn或者代理,让它安装成功
2、设置go proxy,然后去安装vscode插件

设置goproxy代理

查看GO环境变量设置

  1. go env
  2. set GO111MODULE=
  3. set GOARCH=amd64
  4. set GOBIN=
  5. set GOCACHE=C:\Users\xiao\AppData\Local\go-build
  6. set GOENV=C:\Users\xiao\AppData\Roaming\go\env
  7. set GOEXE=.exe
  8. set GOEXPERIMENT=
  9. set GOFLAGS=
  10. set GOHOSTARCH=amd64
  11. set GOMODCACHE=D:\go-project\pkg\mod
  12. set GONOPROXY=
  13. set GONOSUMDB=
  14. set GOOS=windows
  15. set GOPATH=D:\go-project
  16. set GOPRIVATE=
  17. set GOPROXY=https://proxy.golang.org,direct
  18. set GOROOT=D:\apptools\go
  19. set GOSUMDB=sum.golang.org
  20. set GOTMPDIR=
  21. set GOTOOLDIR=D:\apptools\go\pkg\tool\windows_amd64
  22. set GOVCS=
  23. set GOVERSION=go1.17.2
  24. set GCCGO=gccgo
  25. set AR=ar
  26. set CC=gcc
  27. set CXX=g++
  28. set CGO_ENABLED=1
  29. set GOMOD=NUL
  30. set CGO_CFLAGS=-g -O2
  31. set CGO_CPPFLAGS=
  32. set CGO_CXXFLAGS=-g -O2
  33. set CGO_FFLAGS=-g -O2
  34. set CGO_LDFLAGS=-g -O2
  35. set PKG_CONFIG=pkg-config
  36. set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\xiao\AppData\Local\Temp\go-build12972845=/tmp/go-build -gno-record-gcc-switches

七牛云代理 https://goproxy.cn/

GO111MODULE 的由来

https://learnku.com/go/t/39086
如其名字所暗示,GO111MODULE 是 Go 1.11 引入的新版模块管理方式。之前的版本中,安装的三方库比如 go-cmp ,要求模块存在于 GOPATH 下,否则编译时会找不到。
GO111MODULE 是一个环境变量,可以在使用 go 更改 Go 导入包的方式时进行设置。

  1. $ go env -w GO111MODULE=on
  2. $ go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct

设置完之后,查看

  1. go env
  2. set GO111MODULE=on
  3. set GOARCH=amd64
  4. set GOBIN=
  5. set GOCACHE=C:\Users\xiao\AppData\Local\go-build
  6. set GOENV=C:\Users\xiao\AppData\Roaming\go\env
  7. set GOEXE=.exe
  8. set GOEXPERIMENT=
  9. set GOFLAGS=
  10. set GOHOSTARCH=amd64
  11. set GOHOSTOS=windows
  12. set GOINSECURE=
  13. set GOMODCACHE=D:\go-project\pkg\mod
  14. set GONOPROXY=
  15. set GONOSUMDB=
  16. set GOOS=windows
  17. set GOPATH=D:\go-project
  18. set GOPRIVATE=
  19. set GOPROXY=https://goproxy.cn
  20. set GOROOT=D:\apptools\go
  21. set GOSUMDB=sum.golang.org
  22. set GOTMPDIR=
  23. set GOTOOLDIR=D:\apptools\go\pkg\tool\windows_amd64
  24. set GOVCS=
  25. set GOVERSION=go1.17.2
  26. set GCCGO=gccgo
  27. set AR=ar
  28. set CC=gcc
  29. set CXX=g++
  30. set CGO_ENABLED=1
  31. set GOMOD=NUL
  32. set CGO_CFLAGS=-g -O2
  33. set CGO_CPPFLAGS=
  34. set CGO_CXXFLAGS=-g -O2
  35. set CGO_FFLAGS=-g -O2
  36. set CGO_LDFLAGS=-g -O2
  37. set PKG_CONFIG=pkg-config
  38. set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\xiao\AppData\Local\Temp\go-build3442023997=/tmp/go-build -gno-record-gcc-switches
  1. 清空缓存 go clean --modcache

安装vscode插件

重新打开vscode, 不打开工作目录,直接在vscode的窗口里安装插件
ctrl+shift+p
输入: Go install
选择Install/Update Tools
全选安装插件,如图安装成功了
image.png

go path配置

1、gopath直接在环境变量中设置就可以了,不用单独在vscode中设置
2、设置 Tools Gopath
vscode中可以为在vscode中安装的go tools设置一个单独的目录具体设置项为 Tools Gopath,使用ctrl+, 然后输入tools gopath ,在下方填你想独立存放刚才第二步安装的工具的存放的地方了。

  1. settings.json文件里新增以下配置, 设置go tools的全局安装目录
  2. "go.toolsGopath": "D:\\go-global-tools"

Location to install the Go tools that the extension depends on if you don’t want them in your GOPATH. When specified as a workspace setting, the setting is used only when the workspace is marked trusted with “Go: Toggle Workspace Trust Flag”.

image.png
image.png

go mod相关

如果你现在使用了go mod模式,就不用纠结配置几个gopath的问题,只配置一个就好了。vscode的go mod支持需要启用language server按ctrl+, (注意是ctrl + 英文状态的逗号)调出配置界面,输入go.lang

把 Use Language Server设置选中状态即开启了gopls了,这时vscode就会很好的支持go mod类型的项目了。
image.png

VsCode Go插件在Go项目中的正确配置

如何运行

如果是一个单独的main.go这种,现在你的vscode应该可以工作了,但是在工程里面可能不行。
工程一般有2种 结构
一种是有src目录,就是go 代码放在工程目录下面的src目录下面,这就可能会导致一些项目不能正确加载,比如非go mod项目。
这时候在工程目录下面建一个.vscode目录,然后在.vscode目录下面创建.settings.json文件
在里面设置gopath
image.png
如果你的main包不在src目录下面,则需要设置cwd,也就是工作时切换到的目录
这时候可以选中你的main.go,按ctrl+F5,start Without Debuging,开始运行了.
说一点,如果是go mod的工程,这个gopath就不需要配置了.

如何Debug和运行

vscode里面正常的工程项目main包一般在cmd下面,不同的项目可能不同,但一定有一个main包。
选中你的main.go,按F5,这时就会弹出一个需要创建launch.json,点create a launch.json,直接默认的选中go,就会在.vscode目录下生成一个launch.json文件
image.png
image.png
这时候一般的程序都可以开始调试了,但是如果你的main.go启动是需要一些配置文件的话,需要配置一个cwd的属性.

cwd - current working directory for finding dependencies and other files

加上cwd的属性如下

  1. {
  2. // 使用 IntelliSense 了解相关属性。
  3. // 悬停以查看现有属性的描述。
  4. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  5. "version": "0.2.0",
  6. "configurations": [
  7. {
  8. "name": "Launch Package",
  9. "type": "go",
  10. "request": "launch",
  11. "mode": "auto",
  12. "program": "${fileDirname}",
  13. "cwd": "${workspaceFolder}",
  14. "env": {},
  15. "args": []
  16. }
  17. ]
  18. }

到此,设置好断点,选中入口文件,按F5就可以进入debug了,然后f10单步之类的快捷键,可以看界面上的提示,自己点几下就知道好玩了.

VsCode Go插件的那些常用快捷

ctrl+p 文件搜索快捷键

ctrl+shift+p 命令快捷键

ctrl+shift+k 删除一行

alt+左方向键 回到上一次编辑的地方

ctrl+鼠标左键,跳到方法定义的地方

原文链接请查看: https://zhuanlan.zhihu.com/p/320343679