写点什么

vscode 插件设置——Golang 开发环境配置

作者:甜点cc
  • 2022-10-26
    河南
  • 本文字数:3294 字

    阅读完需:约 11 分钟

适用读者: Go 初学者, 到这里, 你应该是处于已经完成了 go 的安装之后, 准备写个 "Hello Gopher" 之前。 本篇力求给初学者-未来的 Gopher 们 一个正确的开箱姿势。 若有不当之处请指正, 蟹蟹😊

1、vscode 安装 Go 插件

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

Tools environment: GOPATH=D:\go-projectInstalling 11 tools at D:\go-project\bin in module mode.  gopkgs  go-outline  gotests  gomodifytags  impl  goplay  dlv  dlv-dap  staticcheck  gopls  goimports
复制代码


安装失败,被墙😒


3、另一种手动安装插件的方式👇

vscode

  1. 快捷键: ctrl+shift+p

  2. 输入: Go install

  3. 选择 Install/Update Tools



勾选安装所有插件👇



这样安装跟点击 vscode 提示安装 install all 是一样的,不会成功,失败原因大家都知道的。


connection failed because connected host has failed to respond.


推荐两个方法:

  1. 开国外 vpn 或者代理,让它安装成功(本篇不讲这个)

  2. 设置 go proxy,然后去安装 vscode 插件


🎉下面让我们来看一下通过设置代理的方式解决插件安装失败的问题吧👇

4、设置 go proxy 代理

4.1、查看 GO 环境变量设置

go env


set GO111MODULE=set GOARCH=amd64set GOBIN=set GOCACHE=C:\Users\xiao\AppData\Local\go-buildset GOENV=C:\Users\xiao\AppData\Roaming\go\envset GOEXE=.exeset GOEXPERIMENT=set GOFLAGS=set GOHOSTARCH=amd64set GOMODCACHE=D:\go-project\pkg\modset GONOPROXY=set GONOSUMDB=set GOOS=windowsset GOPATH=D:\go-projectset GOPRIVATE=set GOPROXY=https://proxy.golang.org,directset GOROOT=D:\apptools\goset GOSUMDB=sum.golang.orgset GOTMPDIR=set GOTOOLDIR=D:\apptools\go\pkg\tool\windows_amd64set GOVCS=set GOVERSION=go1.17.2set GCCGO=gccgoset AR=arset CC=gccset CXX=g++set CGO_ENABLED=1set GOMOD=NULset CGO_CFLAGS=-g -O2set CGO_CPPFLAGS=set CGO_CXXFLAGS=-g -O2set CGO_FFLAGS=-g -O2set CGO_LDFLAGS=-g -O2set PKG_CONFIG=pkg-configset 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/

4.2、插话:GO111MODULE 的由来

简单来说就是 影响到 Go 项目 本地存放的位置(不受 GOPATH 的影响),后面会用到,这里不展开介绍,初学者先了解一下即可。


如其名字所暗示,GO111MODULE 是 Go 1.11 引入的新版模块管理方式。之前的版本中,安装的三方库比如 go-cmp ,要求模块存在于 GOPATH 下,否则编译时会找不到。


GO111MODULE 是一个环境变量,可以在使用 go 更改 Go 导入包的方式时进行设置。

4.3、设置七牛云代理

$ go env -w GO111MODULE=on$ go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct
复制代码


设置完之后,查看


go env
set GO111MODULE=onset GOARCH=amd64set GOBIN=set GOCACHE=C:\Users\xiao\AppData\Local\go-buildset GOENV=C:\Users\xiao\AppData\Roaming\go\envset GOEXE=.exeset GOEXPERIMENT=set GOFLAGS=set GOHOSTARCH=amd64set GOHOSTOS=windowsset GOINSECURE=set GOMODCACHE=D:\go-project\pkg\modset GONOPROXY=set GONOSUMDB=set GOOS=windowsset GOPATH=D:\go-projectset GOPRIVATE=set GOPROXY=https://goproxy.cnset GOROOT=D:\apptools\goset GOSUMDB=sum.golang.orgset GOTMPDIR=set GOTOOLDIR=D:\apptools\go\pkg\tool\windows_amd64set GOVCS=set GOVERSION=go1.17.2set GCCGO=gccgoset AR=arset CC=gccset CXX=g++set CGO_ENABLED=1set GOMOD=NULset CGO_CFLAGS=-g -O2set CGO_CPPFLAGS=set CGO_CXXFLAGS=-g -O2set CGO_FFLAGS=-g -O2set CGO_LDFLAGS=-g -O2set PKG_CONFIG=pkg-configset 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
复制代码


清空缓存


go clean --modcache

5、重新安装 vscode 插件

重新打开 vscode, 不打开工作目录,直接在 vscode 的窗口里安装插件


  1. ctrl+shift+p


  1. 输入: Go install


  1. 选择 Install/Update Tools


全选安装插件,如图安装成功了


6、go path 配置

  1. gopath 直接在环境变量中设置就可以了,不用单独在 vscode 中设置

  2. 设置 Tools Gopath (设置全局工具安装目录,目的是更方便、清晰的管理工具✨)


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


settings.json文件里新增以下配置, 设置go tools的全局安装目录
"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".



7、go mod 相关

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


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


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

8.1、如何运行

如果是一个单独的 main.go 这种,现在你的 vscode 应该可以工作了,但是在工程里面可能不行。


工程一般有 2 种 结构:一种是有 src 目录,一种没有。


有 src 目录的就是 go 代码放在工程目录下面的 src 目录下面,这就可能会导致一些项目不能正确加载,比如非 go mod 项目。


这时候在工程目录下面建一个.vscode 目录,然后在.vscode 目录下面创建.settings.json 文件


在里面设置 gopath



如果你的 main 包不在 src 目录下面,则需要设置 cwd,也就是工作时切换到的目录


这时候可以选中你的 main.go,按 ctrl+F5,start Without Debuging,开始运行啦✌


注意: 说一点,如果是 go mod 的工程,这个 gopath 就不需要配置了❗

9、如何 Debug 和运行

vscode 里面正常的工程项目 main 包一般在 cmd 下面,不同的项目可能不同,但一定有一个 main 包。

9.1、创建 launch.json (运行项目)

选中你的 main.go,按 F5,这时就会弹出一个需要创建 launch.json,点 create a launch.json,直接默认的选中 go,就会在.vscode 目录下生成一个 launch.json 文件




这时候一般的程序都可以开始调试了,但是如果你的 main.go 启动是需要一些配置文件的话,需要配置一个 cwd 的属性


cwd - current working directory for finding dependencies and other files

9.2、配置 cwd 属性

launch.json 中 加上 cwd 的属性如下👇


{  // 使用 IntelliSense 了解相关属性。  // 悬停以查看现有属性的描述。  // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387  "version": "0.2.0",  "configurations": [    {      "name": "Launch Package",      "type": "go",      "request": "launch",      "mode": "auto",      "program": "${fileDirname}",      "cwd": "${workspaceFolder}",      "env": {},      "args": []    }  ]}
复制代码


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

9.3 Debug 运行效果

最后

任何语言的环境配置都是非常重要的一步,初学者需要有足够的耐心尝试自己配置,加油,你是最棒的🎉




我是 甜点 cc


热爱前端开发,也喜欢专研各种跟本职工作关系不大的技术,技术、产品兴趣广泛且浓厚。本号主要致力于分享个人经验总结,希望可以给一小部分人一些微小帮助。


希望能和大家一起努力营造一个良好的学习氛围,为了个人和家庭、为了我国的互联网物联网技术、数字化转型、数字经济发展做一点点贡献。数风流人物还看中国、看今朝、看你我。

发布于: 刚刚阅读数: 4
用户头像

甜点cc

关注

看见另一种可能 2020-04-30 加入

欢喜勇猛

评论

发布
暂无评论
vscode插件设置——Golang开发环境配置_Go_甜点cc_InfoQ写作社区