Sublime Text中LSP-gopls在HOME目录创建go文件夹问题求助
解决LSP-gopls在Sublime Text中错误生成$HOME/go/pkg/mod的问题
问题根源
Sublime Text启动时可能未加载你的.zshrc环境变量,导致gopls读取不到自定义的GOPATH;或是LSP-gopls插件的配置优先级覆盖了系统环境变量。
解决步骤
1. 在Sublime全局设置中指定环境变量
打开Sublime的用户设置(Preferences > Settings),添加以下配置,强制插件启动时获取正确的GOPATH:
{ "env": { "GOPATH": "$HOME/Code/go", "GO111MODULE": "on" } }
2. 给LSP-gopls插件单独配置环境
打开LSP-gopls的专属设置(Preferences > Package Settings > LSP > Settings - User),直接在客户端配置里指定GOPATH和模块缓存路径:
{ "clients": { "gopls": { "command": ["/Users/user/Code/go/bin/gopls"], "env": { "GOPATH": "$HOME/Code/go", "GOMODCACHE": "$HOME/Code/go/pkg/mod" } } } }
显式设置
GOMODCACHE能直接指定模块缓存位置,彻底避免gopls使用默认路径。
3. 从终端启动Sublime(macOS适用)
如果平时从应用文件夹启动Sublime,它不会加载.zshrc的环境变量。改成从终端启动:
open -a "Sublime Text"
这样Sublime会继承终端里的所有环境变量,包括你设置的GOPATH。
4. 验证gopls的环境识别
在终端执行命令,确认gopls本身能正确读取GOPATH:
/Users/user/Code/go/bin/gopls env
查看输出里的GOPATH和GOMODCACHE是否是你自定义的路径,如果正确,就说明问题出在Sublime的环境传递,优先用前两种方法解决。
内容的提问来源于stack exchange,提问作者Modern Fears
相关产品推荐
相关产品推荐

