解决Neovim中通过Mason安装gopls LSP失败的问题
解决Neovim安装gopls LSP失败的问题
问题原因
编译报错的核心原因有两个:一是gccgo 1.18对Go泛型语法的支持存在缺陷,gopls依赖的golang.org/x/tools库使用了泛型特性,导致编译无法通过;二是你安装的gopls v0.15.2要求最低Go版本为1.19,当前Go 1.18版本不满足要求。
解决方案
方案1:替换为官方Go发行版(推荐)
gccgo在泛型支持、工具链兼容性上不如官方Go发行版,更换为官方版本能彻底解决问题:
- 卸载当前gccgo:
sudo dnf remove gccgo(根据Red Hat系统调整命令) - 下载并安装官方Go 1.19或更高版本(推荐最新稳定版如1.22)
- 设置环境变量:
export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$GOROOT/bin:$GOPATH/bin:$PATH - 验证安装:
go version,确保输出为官方版本(如go version go1.22.2 linux/amd64) - 重新通过Mason安装gopls
方案2:安装兼容Go 1.18的gopls旧版本
如果暂时无法升级Go,可以安装支持Go 1.18的gopls版本(如v0.14.2):
- 手动安装指定版本:
go install golang.org/x/tools/gopls@v0.14.2 - 或在Mason界面中找到gopls,选择安装v0.14.2版本
方案3:确保Mason使用正确的Go环境
若已更换Go版本,需让Mason识别新的Go路径:
- 在Neovim配置中添加:
vim.g.mason_go_path = "/usr/local/go/bin/go" - 重启Neovim后重新安装gopls
内容的提问来源于stack exchange,提问作者Yossef Sabry
相关产品推荐
相关产品推荐

