Mac上安装Go并配置VSCode调试环境
本文介绍在 Mac 上安装 Go 的完整流程,包括环境变量配置、VSCode 开发环境搭建、调试器配置、常用快捷键以及常见问题的处理。
一、在Mac电脑安装Go —— 使用官方安装包
1. 下载安装包
访问Go官方下载页面:https://go.dev/dl/
根据Mac芯片选择对应版本:
- Apple Silicon (M1/M2/M3等):选择
go1.xx.x.darwin-arm64.pkg - Intel芯片:选择
go1.xx.x.darwin-amd64.pkg
2. 安装
双击下载的 .pkg 文件,按照提示完成安装。Go默认会被安装到 /usr/local/go 目录。
3. 配置环境变量
安装完成后,需要配置环境变量以便系统识别Go命令。
第一步:打开配置文件
-
如果你用的是 macOS Catalina及更新版本,默认shell为Zsh,在终端中运行:
nano ~/.zshrc -
如果你用的是 更早的macOS版本,默认shell为Bash,运行:
nano ~/.bash_profile
第二步:添加配置
在打开的文件末尾添加以下内容:
export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
第三步:保存并生效
- 在
nano编辑器中,按Ctrl+O保存,按回车确认,再按Ctrl+X退出 - 运行以下命令使配置立即生效:
source ~/.zshrc
# 或
source ~/.bash_profile
4. 验证安装
打开新的终端窗口,输入以下命令验证是否安装成功:
go version
如果看到类似 go version go1.xx.x darwin/arm64 的输出,就说明安装成功了。
二、使用VSCode进行Go开发和调试
1. 确认 Go 扩展是否已安装
- 打开 VSCode。
- 点击左侧 扩展 图标(或按
Cmd+Shift+X)。 - 搜索 “Go”,如果看到 “Go” 扩展(作者
Go Team at Google)显示为 “已安装”,则跳过;否则点击 安装。
2. 检查 Go 工具链(dlv 和 gopls)是否已就绪
-
打开 终端,依次执行以下两条命令:
dlv version gopls version -
如果两条命令都输出版本号(如
Delve Debugger Version 1.22.0和golang.org/x/tools/gopls v0.14.2),说明工具已装好,直接跳到第4步。 -
如果任一条提示
command not found,则进入第3步。
3. 手动安装 Go 工具(推荐,可避免网络超时问题)
说明:VSCode 的
Go: Install/Update Tools命令可能会因为网络问题导致安装超时(尤其是访问proxy.golang.org时)。如果遇到这种情况,推荐直接在终端手动安装。
第一步:配置国内代理(可选,加速下载)
go env -w GOPROXY=https://goproxy.cn,direct
第二步:手动安装所需工具
在终端中依次执行以下命令:
# 安装 gopls(Go 语言服务器,提供代码补全、导航等功能)
go install -v golang.org/x/tools/gopls@latest
# 安装 dlv(Delve 调试器)
go install -v github.com/go-delve/delve/cmd/dlv@latest
# 安装 impl(接口实现生成工具)
go install -v github.com/josharian/impl@latest
# 安装 goplay(Go Playground 本地运行工具)
go install -v github.com/haya14busa/goplay/cmd/goplay@latest
第三步:验证安装成功
安装完成后,在终端执行以下命令确认:
dlv version
gopls version
如果都能正常输出版本信息,说明工具安装成功。
4. 配置环境变量并重启 VSCode
手动安装的工具位于 ~/go/bin 目录,需要确保该目录在系统 PATH 中,VSCode 才能识别。
第一步:检查并配置 PATH
打开终端,执行:
echo $PATH
如果输出中没有包含 /Users/你的用户名/go/bin,则需要将其添加到配置文件中:
echo 'export PATH=$PATH:~/go/bin' >> ~/.zshrc
source ~/.zshrc
第二步:完全重启 VSCode
务必完全退出 VSCode(按 Cmd+Q),然后重新打开。这一步非常关键,目的是让 VSCode 的语言服务器重新加载系统环境变量,从而识别新安装的 gopls 和 dlv。
5. 准备 Go 项目
创建一个项目目录并初始化 Go 模块:
# 进入项目目录(根据你的实际路径调整)
cd ~/go-playground
# 初始化 Go 模块
go mod init go-playground
创建 main.go 文件:
package main
import "fmt"
func main() {
fmt.Println("Hello, VSCode 调试成功!")
}
6. 配置 VSCode 调试器(launch.json)
-
在 VSCode 中点击左侧 “运行和调试” 图标(或按
Cmd+Shift+D)。 -
点击 “创建 launch.json 文件” → 选择环境 “Go”。
-
将自动生成的配置替换为以下内容:
{ // VSCode 调试配置文件版本,保持 0.2.0 即可 "version": "0.2.0", // 可配置多个调试方案,在下拉菜单中切换 "configurations": [ { // 调试任务名称,显示在调试下拉菜单中 "name": "Launch Playground", // 调试器类型,Go 项目固定为 "go" "type": "go", // "launch":启动新程序调试 / "attach":附加到已运行进程 "request": "launch", // "auto":自动选择模式,最通用,保持默认即可 "mode": "auto", // 程序入口路径,${workspaceFolder} 表示项目根目录 // 如果 main.go 在子目录,改为 "${workspaceFolder}/子目录名" "program": "${workspaceFolder}", // 输出终端:integratedTerminal 是 VSCode 内置终端 // 如需交互输入(如 fmt.Scanln),必须用这个 "console": "integratedTerminal" } ] }
额外说明:
${workspaceFolder}:VSCode 内置变量,指向当前打开的项目文件夹,在不同电脑上无需修改路径。console: "integratedTerminal":推荐保持这个设置,调试时可以正常接收键盘输入。
7. Mac 代码签名(仅首次调试需要)
说明:绝大多数 Mac 环境在调试时不会遇到此问题,如果你能正常按
F5调试,请跳过此步骤。只有当你看到类似could not attach to process的错误时,才需要执行下面的签名操作。
如果在按下 F5 调试时出现 could not attach to process 错误,说明需要对 Delve 进行代码签名。这是 Mac 系统的安全机制要求。
签名步骤(只需做一次):
-
打开 “钥匙串访问”(启动台 → 其他)。
-
菜单栏点击 “证书助理” → “创建证书”:
- 名称:输入
dlv-cert - 身份类型:自签名根证书
- 证书类型:代码签名
- 勾选 “让我覆盖这些默认值”,一路点击"继续",有效期建议改为 3650 天。
- 名称:输入
-
在左侧 “登录” 钥匙串中找到
dlv-cert,双击它。 -
展开 “信任” 部分,将 “代码签名” 下拉菜单改为 “始终信任”,关闭窗口(需输入 Mac 开机密码授权)。
-
打开终端,执行签名命令:
sudo codesign -s dlv-cert ~/go/bin/dlv
签名完成后,再次按 F5 即可正常调试。
8. 开始调试
- 在
main.go的fmt.Println(...)行号左侧单击,设置一个红色断点。 - 按
F5键(或点击绿色启动按钮)。
程序将启动并停在断点处,左侧会出现变量面板,顶部显示调试工具栏(继续、单步跳过、单步进入等),终端中可以看到最终输出。
常见问题速查
| 现象 | 解决办法 |
|---|---|
按 F5 后提示 command not found: dlv |
执行第3步手动安装工具,并确认第4步 PATH 配置正确后重启 VSCode |
按 F5 后提示 could not attach to process |
执行第7步代码签名 |
VSCode 内安装工具时报 i/o timeout |
在终端执行 go env -w GOPROXY=https://goproxy.cn,direct 后,改用第3步手动安装 |
| 代码无高亮、无自动补全 | 确认 gopls 已安装,并按 Cmd+Q 完全重启 VSCode |
| 调试时终端无输出 | 检查 launch.json 中 console 是否为 "integratedTerminal" |
三、VSCode 常用快捷键(Mac 版)
代码跳转
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 跳转到定义 | F12 或 Cmd + 单击 |
跳转到函数、变量、类型等的定义处 |
| 返回上一位置 | Ctrl + -(减号) |
跳转后返回之前光标所在的位置 |
| 前进到下一位置 | Ctrl + Shift + - |
与“返回”配合,在跳转历史中前进 |
| 查看定义(预览) | Option + F12 |
在当前窗口弹出定义预览,不跳转 |
编辑操作
| 操作 | 快捷键 | 说明 |
|---|---|---|
| 删除当前行 | Cmd + Shift + K |
删除光标所在的整行 |
| 剪切当前行 | Cmd + X(未选中内容时) |
剪切整行,可当作删除用 |
| 删除到行尾 | Ctrl + K |
从光标位置删除到行尾 |
补充说明
Ctrl + -中的-是键盘上0右边的减号键,不是数字键盘的减号。- 如果快捷键与其他软件冲突,可以自定义:
Cmd + Shift + P→ 输入Preferences: Open Keyboard Shortcuts→ 搜索对应命令并修改。
更多推荐


所有评论(0)