唯一靠谱的go语言插件是gotools,它原生支持gopls、轻量无冗余;需用package control安装,确保go≥1.18,显式配置gopls路径及use_language_server为true,并检查format_on_save等设置。

Go 语言插件装哪个?别碰 GoSublime
GoSublime 已多年未维护,和新版本 go 工具链(尤其是 gopls)冲突严重,常见现象是保存后不自动格式化、跳转定义失效、甚至 Sublime 假死。现在唯一靠谱的选择是 GoTools,它原生支持 gopls,且轻量无冗余。
- 用 Package Control 安装
GoTools,不是GoSublime,也不是Go Build - 确保系统 PATH 中的
go可执行文件版本 ≥ 1.18(gopls对低版本兼容差) - 安装完重启 Sublime,别信“自动生效”——它不会
gopls 配置不对,所有功能都白搭
GoTools 默认会尝试调用 gopls,但若没显式配置路径或参数,它可能 fallback 到旧协议或直接失败,表现为:保存无反应、hover 不出类型、Ctrl+Click 跳转报错 no definition found。
- 打开
Preferences → Package Settings → GoTools → Settings - 在右侧面板加这段(路径按你本地改):
"gopls_path": "/usr/local/go/bin/gopls",
- 强烈建议加
"use_language_server": true,关掉旧的go oracle回退逻辑 - 如果
gopls是用go install装的(比如go install golang.org/x/tools/gopls@latest),路径通常是$HOME/go/bin/gopls,不是/usr/local/go/bin/gopls
GOROOT 和 GOPATH 还得手动设?看情况
Go 1.16+ 默认启用 GO111MODULE=on,模块项目不再依赖 GOPATH。但 Sublime 的 GoTools 仍会读取环境变量来定位标准库和构建工具——尤其当你用 go run 或 go build 快捷键时。
- 如果
go env GOROOT输出为空或错误路径,在GoTools设置里补上:"goroot": "/usr/local/go"
-
gopath字段可不填,除非你真在$GOPATH/src下写老式非模块代码 - Mac 用户注意:
/usr/local/go是 Homebrew 安装路径;用官方安装包的话可能是/usr/local/go或/opt/homebrew/Cellar/go/*/libexec
保存自动格式化失效?检查三个地方
很多人配完以为完事了,结果保存还是不格式化,常见原因不是插件问题,而是设置断层:
立即学习“go语言免费学习笔记(深入)”;
-
GoTools设置里必须有:"format_on_save": true,
- 确认 Sublime 全局设置没关掉保存事件:
Preferences → Settings中不能有"save_on_focus_lost": false类干扰项 - 格式化实际由
gopls执行,所以如果gopls启动失败(比如go版本太低、GOROOT错),它就静默跳过——开 Sublime 控制台(Ctrl+`)看有没有gopls: failed to start日志
gopls 驱动的,不是插件自己实现语法分析。任何“功能不工作”的问题,第一反应不该是换插件,而是查 gopls 是否跑起来了、路径对不对、日志报什么错。这点比配路径本身还容易被忽略。










