VS CODE 配置远程 Go 开发环境
# VS CODE 配置远程 Go 开发环境
# 配置linux用户
尽量不使用root用户作为开发用户,使用普通用户作为开发用户,可以支持不同用户使用不同的go开发环境。
新建开发账户
本文以用户
code为例。# useradd code # passwd code1
2将用户添加
sudo免密编辑
/etc/sudoers文件:# visudo1在
root ALL=(ALL) ALL下发添加code ALL=(ALL) NOPASSWD:ALL。## Allow root to run any commands anywhere root ALL=(ALL) ALL code ALL=(ALL) NOPASSWD:ALL1
2
3
# 安装Go
tips:建议使用root用户安装go。
下载
Go安装包,Go安装包:https://go.dev/dl/go1.18.1.linux-amd64.tar.gz。通过删除
/usr/local/go文件夹(如果存在)来删除任何以前的Go,然后将刚刚下载的存档解压缩到/usr/local,在/usr/local/go中创建一个新的Go树:# rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.1.linux-amd64.tar.gz1将
/usr/local/go/bin添加到PATH环境变量中。编辑文件
/etc/profile(所有用户有效)或者$HOME/.profile(当前用户有效),添加如下内容:export PATH=$PATH:/usr/local/go/bin1然后执行命令:
source /etc/profile或source $HOME/.profile。验证
Go是否安装成功。# go version go version go1.18.1 linux/amd641
2配置
Go Proxy$ go env -w GO111MODULE=on $ go env -w GOPROXY=https://goproxy.cn1
2
# 配置 VS CODE
# 安装 SSH 远程插件
Remote Development using SSH (opens new window)
在 VS CODE 的”拓展“里搜输入remote,安装搜索结果的第一个名为remote - SSH的插件,也可以安装其他remote插件,取决于远程开发环境。

tips:插件的“细节”里有使用说明,可以安装使用说明配置。
# 配置远程登录
点击
remote ssh的Configure,选择第一个配置文件:
添加远程主机配置:
Host remotehost.yourcompany.com User yourname HostName another-host-fqdn-or-ip-goes-here IdentityFile ~/.ssh/id_rsa-remote-ssh1
2
3
4remotehost.yourcompany.com:远程主机的标示名称,可以随意取。yourname:远程主机的用户,如刚刚创建的用户code。another-host-fqdn-or-ip-goes-here:远程主机的地址。IdentityFile:用于远程登录的秘钥,可以不设置(可以使用ssh-copy-id设置密码登录)。
例如:
Host GoDev HostName 192.168.1.10 User code1
2
3设置免密登录。
在 VS CODE 所在机器,打开
git bash,执行如下命令:$ ssh-copy-id username@hostIP1使用 VS CODE 连接远程开发机器。
连接远程主机。

选择打开的工作目录。

# 安装Go插件
Vscode for go (opens new window)
# 插件安装
在 VS CODE 的”扩展“里搜输入
go,安装搜索结果的第一个名为Go的插件。
安装其他
Go插件。按快捷键
ctrl+shift+p,选择go install/update tools(安装所有相关包)。
选择全部进行安装。

# 解决插件失败问题
tips:配置了国内代理一般不会出现失败问题。
如果上述步骤安装Go插件失败,可以通过如下方式安装。
分别创建两个目录:
gotools和goworks。设置
GOPATH为gotools,例如:go env -w GOPATH="/home/code/.gocache/gotools"。进入到
goworks目录,执行命令:go mod init goworks。在
goworks目录如下命令:export GO111MODULE=on export GOPROXY=https://goproxy.cn go get -u -v github.com/stamblerre/gocode go get -u -v github.com/ramya-rao-a/go-outline go get -u -v github.com/acroca/go-symbols go get -u -v golang.org/x/tools/cmd/guru go get -u -v golang.org/x/tools/cmd/gorename go get -u -v golang.org/x/tools/cmd/goimports go get -u -v github.com/rogpeppe/godef go get -u -v github.com/zmb3/gogetdoc go get -u -v golang.org/x/tools/cmd/godoc go get -u -v github.com/golang/lint/golint go get -u -v github.com/derekparker/delve/tree/master/cmd/dlv go get -u -v github.com/fatih/gomodifytags go get -u -v github.com/josharian/impl go get -u -v github.com/tylerb/gotype-live go get -u -v github.com/cweill/gotests go get -u -v github.com/davidrjenni/reftools/cmd/fillstruct go get -u -v golang.org/x/tools/gopls1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20配置 VS CODE 的 Go 插件
打开
settings.json。
添加如下内容:
{ "go.toolsGopath": "/home/code/.gocache/gotools", // tools的绝对路径 "go.goroot": "/usr/local/go", "go.useLanguageServer": true, "go.autocompleteUnimportedPackages": true, "go.gocodeAutoBuild": true, "go.gotoSymbol.includeGoroot": true, "go.gotoSymbol.includeImports": true, "go.buildOnSave": "package", "go.vetOnSave": "package", "terminal.integrated.env.linux": { "GOPROXY":"https://goproxy.cn", "GO111MODULE": "on" }, }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15配置”工作区“:
打开
settings.json。
添加如下内容:
{ "go.toolsGopath": "/home/code/.gocache/gotools", // tools的绝对路径 "go.goroot": "/usr/local/go", "go.gopath": "/home/code/.gocache/gotools", "terminal.integrated.env.linux": { "GO111MODULE": "on" }, }1
2
3
4
5
6
7
8
# 安装 Code Run 插件
搜索关键词code,安装Code Runner插件,这样就可以使用快捷键Ctrl+Alt+N运行代码了。
# 验证 VS CODE Go 开发环境
新建目录
hellomodule,在目录hellomodule下的文件main.go编写go程序:package main import "github.com/sirupsen/logrus" func main() { logrus.Println("hello, gopath mode") }1
2
3
4
5
6
7在
hellmodule目录中执行命令:$ go mod init hellomodule $ go mod tidy1
2编译:
$ go build1运行
go程序:$ ./hellomodule INFO[0000] hello, gopath mode1
2或者在 VS CODE 中使用快捷键
Ctrl+Alt+N运行代码。