【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
    
posted @ 2020-07-31 12:10  嘿咻&比丢  阅读(3198)  评论(0编辑  收藏  举报