【go/vscode】远程环境搭建(离线版/gopls版)
@
说在前面
- vscode 版本:1.47.3
- golang 版本:1.13.8
- 远程测试环境:wsl(ubuntu)
- 本地环境:windows10
- 吐槽:在搞完插件版之后发现有点不太行,找了下,决定尝试下gopls,发现比插件版好用多了
Go安装
-
远程环境
- 简易安装(
ubuntu)sudo apt-get install golang - 查看环境
lele@13724:~/go/src$ go env GO111MODULE="" GOARCH="amd64" GOBIN="" GOCACHE="/home/lele/.cache/go-build" GOENV="/home/lele/.config/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/lele/go" GOPRIVATE="" GOPROXY="https://proxy.golang.org,direct" GOROOT="/usr/lib/go-1.13" ... - 注意其中的
GOPATH,在该目录(go文件加可能也不存在,需自己创建)下创建src以及bin文件夹
- 简易安装(
-
本地环境
- 由于需要在本地下载Go的一些插件资源,所以最好还是在本地也装一下Go
Go插件(本地环境)
- 仅需安装
gopls一个插件
但是该插件的安装需要其他组件,如下错误:go get -v golang.org/x/tools/gopls
安装对应的组件即可,例如cannot find package "github.com/sergi/go-diff/diffmatchpatch" in any of cannot find package "honnef.co/go/tools/simple" in any of cannot find package "honnef.co/go/tools/staticcheck" in any of cannot find package "honnef.co/go/tools/stylecheck" in any of cannot find package "mvdan.cc/gofumpt/format" in any of cannot find package "mvdan.cc/xurls/v2" in any ofgo get -v github.com/sergi/go-diff - 结构
src │ ├─github.com │ ├─BurntSushi │ │ └─toml │ ├─google │ │ └─go-cmp │ └─sergi │ └─go-diff ├─golang.org │ └─x │ ├─lint │ ├─mod │ ├─net │ ├─sys │ ├─text │ └─tools ├─honnef.co │ └─go │ └─tools └─mvdan.cc ├─gofumpt └─xurls - 下载不了看这里(2020/07/31下载的)
CSDN资源
安装gopls(远程环境)
- 将上述下载的GO插件资源,传输至
$GOPATH/src/中(模拟离线安装,外网下载,传输至局域网安装) - 进入
$GOPATH/src/目录,执行指令
可看到go install golang.org/x/tools/goplsbin文件夹中生成goplslele@13724:~/go/bin$ ls gopls
VSCode连接
-
安装VSCode以及两个插件
Remote-SSH以及GO


-
局域网安装详细步骤:vsCode离线安装remote-ssh插件和搭建远程开发环境
VSCode配置
-
连接

选择一个,配置主机IP以及用户名


右键,选择

然后按照提示,选择操作系统,输入密码,即可连接 -
选择工作目录

-
install in remote
这一步相当于将插件上传至远程环境中

-
配置环境
Ctrl+Shift+P搜索setting

编辑{ "go.useLanguageServer": true, "go.gopath": "/home/lele/go:/home/lele/base", "[go]": { "editor.snippetSuggestions": "none", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.organizeImports": true } }, "gopls": { "completeUnimported": true, "usePlaceholders": true, "completionDocumentation": true, "hoverKind": "SynopsisDocumentation" // No/Synopsis/Full, default Synopsis }, "files.eol": "\n", // formatting only supports LF line endings }注意:
go.gopath可以使用多个,在linux环境下使用:分割,但是,工作目录仅在第一个中时,gopls才起作用。我现在使用的配置是这样的:、配置 Value 、go env中的GOPATH /home/lele 、工程 /home/lele下 、vscode settings中的go.gopath /home/lele:/home/lele/project1:/home/lele/project2 go env中的GOPATH可使用下列命令进行更改:export GOPATH=/home/lele

浙公网安备 33010602011771号