UOS系统VS Code配置Go环境
目录
前言
目前go语言的IDE目前最好用的是JetBrain的GoLand,但是,是收费的,免费的只有30天的试用期。
个人觉得,IDE用的最多的可能是自动补全、调试环境,特别是补全。
用过VS Code的同学应该知道它完全免费、支持插件。里面就有Go语言的插件,所以,VS Code + Go插件 + Go工具可以很好的替代GoLand。
我这里是以UOS这个linux系统举例说明。
环境配置
安装VS Code
很简单,在应用商店搜索visual studio code
安装即可。
安装Go
在这里https://golang.google.cn/dl/下载Go语言包
我的机器是64位,这里就直接选择编译好的Linux版本。当然你也可以选择下载源码编译安装。
下载下来后,在终端执行下面这条命令将环境安装到/usr/local/go目录下:
sudo tar -C /usr/local -xzvf go1.14.4.linux-amd64.tar.gz
然后修改环境变量将/usr/local/go/bin
加到PATH中,我这里是只给当前用户配置,所以加到~/.bashrc中:
vim ~/.bashrc
export GO_PATH=/usr/local/go
export PATH=$PATH:$GO_PATH/bin
然后执行source ~/.bashrc
让配置生效。
在终端试下输入go version命令,如果出现帮助输出,那就是安装没问题
halo@halo:Desktop$ go version
go version go1.14.4 linux/amd64
我们写一个小demo试下:
vim main.go
这里安利下vim youcompleteme插件,下面的代码是vim插件自动生成的。
package main
import "fmt"
func main(){
fmt.Println("Hello, World!")
}
编译一下:
go build main.go
没有报错,运行:
halo@halo:0.begin$ ./main
Hello, World!
配置go环境
在VS code插件栏搜索Go,安装Go插件。
然后,按住快捷键CTRL+SHIFT+P
,输入Go,选择 Go: Locate Configured Go Tools
:
回车,检测go环境,输出如下:
可以看到缺很多工具。
如果能翻墙的话,在vs code中打开一个go文件,右下角就会提示缺少插件,点击install all即可;
如果不能翻墙,那只能一个一个从git下载,然后git install安装。
下面我们大概介绍下各个工具的用途和安装方法:
gocode
用于支持代码自动补全
halo@halo:5.go$ go get -u -v github.com/nsf/gocode
github.com/nsf/gocode (download)
created GOPATH=/home/halo/go; see 'go help gopath'
github.com/nsf/gocode
在使用go get获取工具代码时,会在home目录创建go目录,目录下的src用于存放下载的源码,bin用于存放编译出的工具。
halo@halo:go$ go install github.com/nsf/gocode
halo@halo:go$ ls bin/
gocode
注意go install后直接带git路径即可,安装完成后可以看到bin目录下生成了gocode程序。
然后我们再在vscode执行Go: Locate Configured Go Tools
检测go环境时发现gocode已安装:
gopkgs
用于快速列出可导入的包
go get lsgithub.com/tpng/gopkgs
go install github.com/tpng/gopkgs
go-outline
用于在Go源文件中提取声明的JSON表示形式
go get github.com/lukehoban/go-outline
go install github.com/lukehoban/go-outline
go-symbols
用于从go源树中提取包符号的JSON表示形式
安装这个之前,需要先下载buildutil,这个包比较大要多等一会儿
# 下载buildutil
go get github.com/golang/tools
# 然后改名
mkdir ~/go/src/golang.org
mkdir ~/go/src/golang.org/x
cp ~/go/src/github.com/golang/tools/ -rf ~/go/src/golang.org/x/
然后下载安装go-symbols
go get github.com/acroca/go-symbols
go install github.com/acroca/go-symbols
guru
回答有关Go源代码问题的工具,比如标识符在哪里声明之类的
需要先下载mod、xerror这两个包
git clone https://github.com/golang/mod.git src/golang.org/x/mod
git clone https://github.com/golang/xerrors.git src/golang.org/x/xerrors
guru包在下载buildutil时已下载,只需要安装
go install golang.org/x/tools/cmd/guru
gorename
重构工具,用于修改变量名之类的
gorename包在下载buildutil时已下载,只需要安装
go install golang.org/x/tools/cmd/gorename
gotests
单元测试框架
go get github.com/cweill/gotests
go install github.com/cweill/gotests/gotests
gomodifytags
用于修改/更新结构中的字段标签
go get github.com/fatih/gomodifytags
go install github.com/fatih/gomodifytags
impl
用于生成接口实现的函数体
go get github.com/josharian/impl
go install github.com/josharian/impl
fillstruct
用默认值填充结构字面值
go get github.com/davidrjenni/reftools
go install github.com/davidrjenni/reftools/cmd/fillstruct
goplay
Go Playground (https://play.golang.org/) 客户端,Go Playground是一个在线的、可以运行Go语言代码的、可以分享Go语言代码的平台
go get github.com/haya14busa/goplay/cmd/goplay
go install github.com/haya14busa/goplay/cmd/goplay
godoctor
一个go语言重构工具
go get github.com/godoctor/godoctor
go install github.com/godoctor/godoctor
gocode-gomod
gocode-gomod与之前的gocode编出来的程序都叫gocode,所以安装前,需要将之间安装的gocode换成gocode1,安装玩这个后改名为gocode-gomod,再把gocode1改回gocode
go get github.com/stamblerre/gocode
mv ~/go/bin/gocode ~/go/bin/gocode1
go install github.com/stamblerre/gocode
mv ~/go/bin/gocode ~/go/bin/gocode-gomod
mv ~/go/bin/gocode1 ~/go/bin/gocode
godef
用于在源码中查询符号信息
go get github.com/rogpeppe/godef
go install github.com/rogpeppe/godef
goreturns
该工具将零值返回值添加到不完整的Go return语句中,以节省编写Go时的时间
go get github.com/sqs/goreturns
go install github.com/sqs/goreturns
golint
go get github.com/golang/lint
mv ~/go/src/github.com/golang/lint ~/go/src/golang.org/x
go install golang.org/x/lint/golint
godlv
调试器
go get github.com/go-delve/delve/cmd/dlv
go install github.com/go-delve/delve/cmd/dlv
到此,所有的包都装好了,检测如下: