前言
截止到目前为止,Go语言已经更新到1.14.1,网上的很多教程均已经过时,我在此汇总并整理一下相关的教程,提供一个适合当下的Mac OS教程。
教程中使用了Go在1.11之后推出的依赖包管理工具Go Modules[1],并使用了gopls来管理Go代码,让VSCode编写Go代码更加的顺滑。
gopls是VSCode推出的调用微软官方的Language Server Protocol(LSP)[2]的扩展,包含了很多Go工具的功能[3],例如:godef(代码跳转),goimports(代码格式化),gocode(代码补全)等。
安装Go语言
一、安装主要有以下两种方式
1. Homebrew[4]安装(便于升级与卸载,推荐)
执行以下命令即可
brew install go
2. 官方下载pkg安装包(被墙了,可能需要一些技能。。。)
Go官方下载地址
下载完成后,点击安装,无脑下一步即可,中间只需要输入一次系统密码。
二、安装完成后验证是否安装成功
三、两种方式的区别
1. Homebrew安装
1) 通过以下命令升级和卸载
brew upgrade go
brew uninstall go
2) GOROOT路径
/usr/local/Cellar/go/<go 版本号>/libexec
2. 官方下载pkg安装包
1) 卸载时需要删除以下内容,升级则需要卸载后重新安装。
sudo rm -rf /usr/local/go
sudo rm -rf /etc/paths.d/go
2) GOROOT路径
/usr/local/go
Go环境变量配置[5]
Go的环境变量可以通过 go env 命令查看。在Go 1.13之后,无需再通过设置系统环境变量的方式来修改,可以通过 go env -w 命令来设置Go的环境变量。
需要设置的环境变量如下
# 用于存放依赖包及编译文件,比较随意,只要不和GOROOT重名即可,官方禁止这一行为。 go env -w GOPATH=/Users/<系统用户名>/Library/go # 设置代理后,在未***的情况下,打开VSCode后gopls工具的加载会很快。 go env -w GOPROXY=https://goproxy.cn,direct
VSCode开发环境配置
一、初始化Go项目
1. 在 ${GOPATH}/src 之外的任意位置创建一个Go项目。
2. 在项目内执行 go mod init 初始化当前Go项目。
3. Go项目内会出现一个 go.mod 文件。
二、VSCode插件配置
1. 插件列表
1) Go: VSCode官方提供的插件,可以使用Go的大部分工具。
2) Code Runner[6]: VSCode运行代码神器,支持运行40余种语言,可自行配置运行命令。
3) EditorConfig for VS Code[7]: 可以设置VSCode的代码编辑配置。
2. 插件配置
1) 在VSCode配置文件中添加 "go.useLanguageServer": true ,保存后,右下角会提示重启VSCode
2) 重启后右下角会提示安装gopls,点击安装即可。
3. 其他插件配置分享
"code-runner.runInTerminal": true, "code-runner.ignoreSelection": true, "code-runner.saveAllFilesBeforeRun": true, "code-runner.executorMap": { "python": "python3 -u", "go": "cd $dir && go run ./", "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "cpp": "cd $dir && g++ -std=c++11 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", },
Code Runner
root = true [*] charset = utf-8 indent_style = space indent_size = 4 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true
EditorConfig for VS Code
总结
经过以上的配置,VSCode的Go开发环境已经配置完成,可以在VSCode中愉快的编写并运行Go代码了。需要注意的是,由于使用的是gopls,每次打开Go项目,会有10s左右的加载时间,加载完成之后代码跳转,自动补全等功能才可以正常使用。
参考
[1]. 干货满满的 Go Modules 和 goproxy.cn
[2]. Langserver.org
[3]. Go tools that the Go extension depends on
[4]. Homebrew常规使用教程
[5]. 关于GOROOT、GOPATH、GOBIN、project目录
[6]. [VSCode插件推荐] Code Runner: 代码一键运行,支持超过40种语言
[7]. 快速用上 editorconfig 来规范编辑
其他
Mac OS修改VSCode Go的默认缩进格式