@
說在前面
- 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 of
go 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/gopls
bin
文件夾中生成gopls
lele@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