vscode搭建Golang开发环境备忘录

本文不是教程,仅仅是搭建环境过程中的几个注意事项

几个有用的官方文档链接

全为官方的链接,因为这些是最靠谱的,其他的第三方教程都是垃圾


配置tool安装的GOPATH

vscode的Golang插件需要依赖一大堆golang的库,如果希望将这些库和别的库分开,可以在vscode的配置文件中配置 go.toolsGopath 参数,指定一个特殊的 GOPATH 。官网文档原话如下:

“If you wish to have the extension use a separate GOPATH for its tools, provide the desired location in the setting go.toolsGopath . “

也许某些 go tool 会因为网站被墙的原因无法直接用 go get 下载,如果设置了上面的选择,你就可以通过某些方式搞到它的可执行文件放到那个 GOPATH 下的bin文件夹中,大部分依赖可以在上面的第三个链接:Go tools that the Go extension depends on 中查看


翻墙问题

首先,你需要有一个 http proxy 代理,如果你使用的是 ShadowSock 的话可以方便地配置,这里就举一下我本地环境的例子吧,代理为 http://127.0.0.1:1087

配置SS代理

然后,你就可以在vscode的配置文件中配置参数 http.proxyhttp://127.0.0.1:1087 同时配置参数 http.proxyStrictSSLfalse ,这样让go插件自动下载依赖就不会有问题了。

关于vscode代理的配置请参考上面给出的最后一个链接:User and Workspace Settings ,可能内容有些多,请用浏览器搜索 http.proxy 进行快速定位


使用go mod

根据上面的第四个链接: Go modules support in Visual Studio Code ,需要在vscode配置文件中配置参数 go.useLanguageServertrue ,关于 languageserver 的详细配置请移步至 vscode-go 在 Github 上的 README.md

注意,当前使用这个插件默认使用的 language server 为 gopls (v0.1.7) 无法做到对未导入包的自动补全,其它问题详见它的 known-issues


必须功能

目前来说一下几点功能是我比较关注的:

开箱即用

非常不好,必须安装一大堆 Golang 的库…


重构

在同一个 package 下支持的比较好,但是不同的 package 就没有支持了…


代码补全

对于 go mod 的支持不是很好…


格式化

可以在vscode图形化设置界面中进行配置,也可以直接在它的配置文件中配置参数 go.formatTool

设置goimports


debug

详见官方wiki:Debugging Go code using VS Code ,需要安装 dlv


快速生成测试代码

由于 gotest 的存在,可以使用插件快速生成测试文件,调用形式如下

生成测试文件


个人对 vscode 编写 Golang 代码的看法

小的demo、调研用的代码可以用它来写写,其他的情况就别折腾 vscode 了,它只是一个高级一点的文本编辑器呀,还是用 Intellij IDEA 或者 Goland 吧

配置完毕的vscode的样子

曾经用 vim 的时候折腾过 YouCompleteMe ,之后倒腾过 Sublime 以及 Atom ,现在老了折腾不动了,还是 Jetbrain 全家桶真香,学生还可以免费用,其他的那些代码编辑器还是给我老老实实地当代码编辑器吧

真正的IDE

虚假的IDE