go命令必须先正确配置path才能使用,否则gopls、dlv等工具均无法运行;执行go version有输出才算安装成功,若报“command not found”需检查/usr/local/go/bin(macos/linux)或%goroot%\bin(windows)是否加入path。

Go 二进制本身必须先装好,否则后续所有工具都跑不起来——90% 的“gopls 不工作”“dlv 找不到”问题,根源都在 go 命令根本没进 PATH。
确认 go 是否真正可用
别只看安装包点完了没,要看终端里能不能敲出版本:
- 执行
go version,有输出(如go version go1.26.0 darwin/arm64)才算通过 - 如果报
command not found,立刻检查which go是否为空;空就说明/usr/local/go/bin(macOS/Linux)或%GOROOT%\bin(Windows)没加进PATH - Linux/macOS:往
~/.zshrc末尾加export PATH=$PATH:/usr/local/go/bin,然后source ~/.zshrc - Windows:在系统环境变量中把
%GOROOT%\bin加入PATH,注意GOROOT要真实指向你解压/安装 Go 的目录(比如C:\Program Files\Go)
gopls、dlv、goimports 这三个必须 go install
它们不是可选插件,是 VS Code / GoLand 底层能力的依赖项。装错位置或漏装一个,补全、跳转、断点就会局部或完全失效:
-
gopls:语言服务器,提供符号跳转、重命名、诊断。命令:go install golang.org/x/tools/gopls@latest -
dlv:调试器,IDE 断点、变量查看全靠它。命令:go install github.com/go-delve/delve/cmd/dlv@latest -
goimports:比gofmt多一步自动管理import,VS Code Go 插件默认调用它。命令:go install golang.org/x/tools/cmd/goimports@latest - 装完务必验证:
gopls version、dlv version、goimports -h都要有响应;若提示 “command not found”,说明$GOPATH/bin没进PATH,回上一节查
GO111MODULE 和 GOPROXY 必须显式设为生效状态
Go 1.16+ 默认开启模块,但很多旧脚本或 CI 环境仍可能 fallback 到 GOPATH 模式,导致 go mod init 失效、依赖下载卡死:
- 强制启用模块:
go env -w GO111MODULE=on - 国内必须配代理,否则
go mod download极慢或超时:go env -w GOPROXY=https://goproxy.cn,direct -
GOPATH仍建议保留(如export GOPATH=$HOME/go),它现在主要存go install出来的二进制,跟项目路径无关——你可以在/tmp/test下直接go mod init myapp - 别信
go get xxx就万事大吉:go get在 1.17+ 默认只改go.mod,不会自动拉间接依赖;上线前务必跑一遍go mod tidy
IDE 配置里最容易被忽略的两个硬性前提
VS Code 或 GoLand 再好,也救不了没满足的底层条件:
- 项目根目录下必须有
go.mod文件(哪怕只是空的),gopls才会以模块模式加载项目;否则补全基本瘫痪 - 多模块项目用
go.work时,必须确保所有子模块路径正确、且go.work文件本身在 workspace 根目录;路径错一位,gopls就识别不出跨模块引用 -
go vet不是锦上添花:它能发现defer f.Close()漏写err != nil检查这种资源泄漏,CI 中建议作为必跑项 -
go.sum不是摆设:手动删改后没go mod tidy,旧包可能被静默升级,校验就失效了
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!











