gosublime已停更多年,不支持go 1.21+和module模式,必须改用lsp+lsp-go插件,硬编码gopls路径、确保项目含go.mod、关闭所有冲突格式化钩子。

GoSublime 已停更多年,不支持 Go 1.21+ 和 module 模式,强行配置会持续遇到跳转失效、格式化错乱、gopls 启动失败等问题。现在唯一可靠路径是用 LSP + LSP-Go 插件,配合硬编码 gopls 路径和正确项目结构。
为什么 GoSublime 现在基本不能用
它依赖已废弃的 gocode 和 go get 安装方式,不识别 go.mod,也不适配 gopls 协议;即使能补全 import,Goto Definition 会跳进 $GOROOT 源码或直接空白;保存时若同时启用 GoSublime 的 fmt_cmd 和 LSP 的自动格式化,两套逻辑打架,代码缩进、换行、import 分组全乱。
gopls 路径必须硬编码,不能只靠 PATH
Sublime 从 Dock(macOS)或开始菜单(Windows)启动时,根本拿不到 shell 的 PATH,哪怕终端里 which gopls 输出正常,插件照样报 command not found。
- 先在终端运行
go install golang.org/x/tools/gopls@latest(别用go get) - 再执行
which gopls,记下完整路径,比如/Users/you/go/bin/gopls或C:/Users/you/go/bin/gopls.exe - 打开
Preferences → Package Settings → LSP → Settings,在"clients"下填入:
{
"clients": {
"gopls": {
"command": ["/Users/you/go/bin/gopls"],
"enabled": true,
"settings": {
"gopls.build.experimentalWorkspaceModule": true,
"gopls.formatting.gofmtSimplify": false
}
}
}
}
Windows 路径用正斜杠或双反斜杠;"gopls.build.experimentalWorkspaceModule": true 是 Go 1.21+ 必选项,缺了就加载不了模块。
Go语言(Golang)1.26.0版本提供 Go 官方 Windows amd64 MSI 安装包下载入口,版本号 1.26.0,可用于旧项目维护、兼容性测试和指定版本开发环境配置。
项目根目录必须有 go.mod,且 working_dir 要对
gopls 不认 GOPATH,只靠 go.mod 判断项目边界。没有它,补全、跳转、hover 提示全挂。
- 进项目根目录,终端执行
go mod init example.com/foo(模块名随便起,只要生成go.mod) - 构建系统里设
"working_dir": "${file_path}",确保当前文件在含go.mod的目录下 - 如果项目含
go.work,也要确认路径正确,否则gopls会忽略子模块
格式化行为必须收口到 gopls,关掉所有其他钩子
常见冲突来源:GoSublime 的 "fmt_cmd": ["goimports"]、GoFormat 插件、甚至 Sublime 自带的保存钩子。它们各自触发时机不同,结果就是一行被拆三行、import 被重排、括号风格来回切。
- 卸载
GoSublime、GoFormat、GoImports等旧插件 - 检查
Preferences → Package Settings里有没有残留的格式化设置,全部清空 - 想保留 import 自动管理,就在
gopls设置里加"gopls.formatting.gofumpt": true(需提前go install mvdan.cc/gofumpt@latest) - 不想动 import 或折行,就设
"gopls.formatting.gofmtSimplify": false,并确保没开goimports行为
真正卡住人的从来不是“装什么”,而是 go 和 gopls 的路径是否被 Sublime 真正看见、go.mod 是否真实存在、gopls 版本是否够新——这三者缺一不可,且顺序不能颠倒。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










