【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 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配置

  • 連接
    在這里插入圖片描述
    選擇一個,配置主機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
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM