本文默认已经安装好Go语言开发包以及VScode软件
# 1 - 系统环境
系统/用户环境变量
- GOROOT Go 源码存放目录,如果是msi 安装包则默认为 c:/go。
- GOPATH Go 项目/工程的工作区,它包含 3 个主要目录(目录名均为小写)
- bin 编译/构建后,可执行文件目录。(Executable File)
- pkg 归档文件目录。(Archive File)
- src 项目/工程的源码文件目录。(Source File)
- GOCACHE Go 命令将在其中存储缓存信息以供将来生成时重复使用的目录。
- GOTMPDIR Go 命令将在其中写入临时源文件、软件包和二进制文件的目录。
这里就不重复说明如何配置 Go 开发环境了。
2 - GoProxy 配置
由于国内网络环境限制,建议先配置GoProxy
环境变量,当然不配置也行,你能正常访问 golang.org/ 网址也行。\
推荐使用
go mod
管理项目
在安装好Go
运行环境后,Windows
系统可以打开cmd
或者powershell
(macOS
和Linux
系统打开终端),分别输入以下命令
# 启用 go mod
go env -w GO111MODULE=on
# 设置 Go Proxy 代理
go env -w GOPROXY=https://goproxy.io,direct
3 - VScode 安装 Go 插件
我的已经安装过了,安装时正常点击右侧的安装按钮即可
4 - VSCode 安装 Go 工具包
Go 工具包包含了一些格式化、代码检查等功能
-
Ctrl+Shift+P
(Windows
环境),或者选择 "查看" -> "命令面板"
- 我们在这个输入框中输入
>go:install
,下面会自动搜索相关命令,我们选择Go:Install/Update Tools
这个命令
- 选中并会回车执行该命令(或者使用鼠标点击该命令)
VS Code此时会下载并安装上图列出来的16个工具,但是由于国内的网络环境基本上都会出现安装失败,如出现各种FAILED
有两种方法解决这个问题:
5.1 方法一:使用git下载源代码再安装
我们可以手动从github上下载工具,(执行此步骤前提需要你的电脑上已经安装了git)
第一步:现在自己的GOPATH
的src
目录下创建golang.org/x
目录
第二步:在终端/cmd
中cd
到GOPATH/src/golang.org/x
目录下
第三步:执行git clone https://github.com/golang/tools.git tools
命令
第四步:执行git clone https://github.com/golang/lint.git
命令
第五步:按下Ctrl/Command+Shift+P
再次执行Go:Install/Update Tools
命令,在弹出的窗口全选并点击确定,这一次的安装都会SUCCESSED
了。\
git clone https://github.com/golang/tools.git tools
go install github.com/ramya-rao-a/go-outline
go install github.com/cweill/gotests/gotests
go install github.com/josharian/impl
go install github.com/acroca/go-symbols
go install golang.org/x/tools/cmd/guru
go install golang.org/x/tools/cmd/gorename
go install github.com/rogpeppe/godef
go install github.com/sqs/goreturns
go install github.com/golang/lint/golint
经过上面的步骤就可以安装成功了。
5.2安装失败解决办法 使用go mod 代理安装
# Go 1.13 及以上(推荐)
# Windows执行
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
# Windows PowerShell 执行
$env:GO111MODULE = "on"
$env:GOPROXY = "https://goproxy.cn"
# macOS 或 Linux 执行
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
# 或者 macOS 或 Linux 执行
echo "export GO111MODULE=on" >> ~/.profile
echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
source ~/.profile
手动安装
golang.org/x/
- 首先进入
GOPATH
目录, 如果不知道在哪, 使用go env
可以查看 - 然后进入到
src/golang.org/x/
目录, 如果没有可自行创建mkdir -p src/golang.org/x
分别将支持包 clone 下来。
git clone https://github.com/golang/tools.git (工具集以及包源代码)
git clone https://github.com/golang/lint.git (lint 大家都不陌生了)
git clone https://github.com/golang/mod.git (mod 模块支持)
git clone https://github.com/golang/xerrors.git (错误值转换包)
git clone https://github.com/golang/net.git
之后进入到 GOPATH
根目录; 使用 go get -u -v
命令将以上失败中的 github.com 相关的命令执行一遍
go get -u -v github.com/mdempsky/gocode
go get -u -v github.com/uudashr/gopkgs/v2/cmd/gopkgs
go get -u -v github.com/ramya-rao-a/go-outline
go get -u -v github.com/acroca/go-symbols
go get -u -v github.com/cweill/gotests/...
go get -u -v github.com/fatih/gomodifytags
go get -u -v github.com/josharian/impl
go get -u -v github.com/davidrjenni/reftools/cmd/fillstruct
go get -u -v github.com/haya14busa/goplay/cmd/goplay
go get -u -v github.com/godoctor/godoctor
go get -u -v github.com/go-delve/delve/cmd/dlv
go get -u -v github.com/stamblerre/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/sqs/goreturns
无法正常使用 go get 安装时使用 clone 并通过 go install 方式安装,注意要在 %GOPATH% 下使用命令。
go get -u -v github.com/sqs/goreturns (无法正常安装时使用以下命令)
git clone https://github.com/sqs/goreturns.git
go install github.com/sqs/goreturns.git
go get -u -v github.com/josharian/impl (无法正常安装时使用以下命令)
git clone https://github.com/josharian/impl.git
go install github.com/josharian/impl (该支持模块只支持 x64 版本,千万注意系统版本和 Golang 版本)
go get -u -v github.com/go-delve/delve/cmd/dlv (无法正常安装时使用以下命令)
git clone https://github.com/go-delve/delve.git (go-delve 目录需要手动创建,然后将 delve 放进去)
go install github.com/go-delve/delve/cmd/dlv
gocode使用说明
go 语法与自动补全,gocode-gomod 需要使用 VS Code 提示安装完成。
https://github.com/stamblerre/gocode.git (支持模块,目前该模块有问题,不建议使用)
go get -u -v github.com/stamblerre/gocode
https://github.com/mdempsky/gocode.git (Go > 1.8 不支持模块)
go get -u -v github.com/mdempsky/gocode
https://github.com/nsf/gocode.git (旧版本,且不再维护)
go get -u -v github.com/nsf/gocode
其他包 (install || import)
需要 install 或者 import 来进行使用,但更推荐使用 install 方式。安装方式同上。
git clone https://github.com/golang/net.git (网络包)
git clone https://github.com/golang/sync.git (同步/原子包)
git clone https://github.com/golang/crypto.git (加密包)
git clone https://github.com/golang/debug.git (debug 工具包)
git clone https://github.com/golang/oauth2.git (oauth2 认证包)
git clone https://github.com/golang/protobuf.git (protobuf 协议包)
以上为额外的且常用的一些功能的源码扩展包,如有需要可以考虑使用,当然也可以使用第三方包实现。
F5 调试运行
{
"version": "0.2.0",
"configurations": [
{
"name": "GoLaunch",
"type": "go",
"request": "launch",
"mode": "debug",
"remotePath": "",
"port": 6666,
"host": "127.0.0.1",
"program": "${fileDirname}//main.go", // 将 main.go 换成你的文件名
"env": {
"GOPATH": "D:/Go/workplace/", // 你的GOPATH
"GOROOT": "D:/Go/" // GOROOT,GO的安装目录
},
"args": [],
//"showLog": true
}
]
}
第一个GO程序
在D:/Go/workplace/的src目录下,创建test子目录
2、在vs code中打开test子目录
3、在vs code中新建一个文件,保存为test.go
4、在cmd状态下,在test子目录,输入go run test.go同样,能看到程序运行结果\
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
补充内容
- guru 和 gogetdoc 都是代码描述提示,建议使用 gogetdoc
- godoctor 可以使用是 golint
- goimports 和 goreturns 是格式化和包引用管理,建议使用 goreturns
至此 VSCode 配置Go语言开发环境,搭建完成!
接下来就可以使用 VSCode 愉快的编写 Go 代码了!
参考:
配置Visual Studio Code Go 开发 | Microsoft Docs