vscode在安装go环境时由于被墙,很多package获取不到,导致插件不可用。

教程网上有很多,我不喜欢赘述其他人讲过的东西,我这里的主要目的是分享包和简单的安装演示。

为了让新手快速了解如何快速接入本文的教程,我简单说一下几个前置步骤。

  1. 安装Go环境 https://studygolang.com/dl
  2. 配置GOPATH(windows环境会自动配置一个,可以手动多增加几个)
  3. 安装vscode  https://code.visualstudio.com/Download
  4. 点击扩展插件。搜索GO,并点击install
  5. 配置User Settings,启用自动提示灯功能

将我上传的包下载放入GOPATH ,执行后续步骤(下文)

这里我花了几个小时从github上找到了这些包。避免重复劳动力,

这是所有vscoe go 插件所有需要的包的百度网盘地址:

我在下载这些包的时间节点:2019-1-23
https://pan.baidu.com/s/1zkGhSPBVlukP8RMITXPiTA

将这些包全部放在gopath下,手动安装vscode提示安装失败的包(手动安装看下文,很简单)

使用这些包要注意以下几点:

  • 这些包的代码会不断更新,如果想要最新版的代码,可以在包文件夹下面打开git bash执行git pull 拉取最新代码,或者直接去github上重新下载
  • 这里的下载的包的时间节点为 2019-1-23,go 插件更新可能会有其他包需要下载,需要的时候,vscode会自动提示你去安装,如果vscode安装失败,那么就需要根据vscode安装提示的package到github上自行下载并放入包中。当然也可以自己确认,在vscode中使用ctrl + shift + p 打开命令面板,输入 Go:Install/Update Tools 能看到Go插件下所有的工具,安装全部,失败会有提示
  • 不是把包放入gopath就万事大吉了,很多包需要安装(大部分包需要手动isntall)。在使用时vscode会自动提示你哪些包需要安装,点击install,如果遇到安装失败的包,到gopath目录下执行go install XXX 安装即可

简单演示如何安装:

新建一个go文件,随便写一些go代码,ctrl +s 右下角会出现安装提示

VS go语言跳转 go vs code_教程

点击Install,vscode控制台会显示正在安装这个包

VS go语言跳转 go vs code_go_02

 如果安装失败的话,vscode控制台会显示类似如下的内容:

VS go语言跳转 go vs code_go_03

vscode控制台点击TERMINAL进入GOPATH,执行 go install golang.org/x/lint/golint

VS go语言跳转 go vs code_安装_04

 成功则不会出现任何提示,否则会出现错误,如有错误,则根据提示自行从github下载相关包

VS go语言跳转 go vs code_VS go语言跳转_05

 其他的包也是相同的安装方式

测试是否成功:

当没有任何提示出来后,写一个Demo,测试是否成功,以下是简单的测试代码:

package main

import "fmt"

func main() {
	fmt.Println("Hello World")
}

点击菜单栏Debug

成功则输出

VS go语言跳转 go vs code_安装_06

附上几个常见的会安装失败的包的安装代码:

go install  github.com/nsf/gocode
go install  github.com/rogpeppe/godef
go install  github.com/golang/lint/golint
go install  github.com/lukehoban/go-outline
go install  sourcegraph.com/sqs/goreturns
go install  golang.org/x/tools/cmd/gorename
go install  github.com/tpng/gopkgs
go install  github.com/newhook/go-symbols
go install  golang.org/x/tools/cmd/guru

 最后需要设置user settings 启用代码提示等功能

点击File -> Preferences -> Settings -> 点击User Settings

VS go语言跳转 go vs code_安装_07

设置如下内容

{
    "go.autocompleteUnimportedPackages": true,
    "go.gocodePackageLookupMode": "go",
    "go.gotoSymbol.includeImports": true,
    "go.useCodeSnippetsOnFunctionSuggest": true,
    "go.inferGopath": true,
    "go.gopath":"G:\\go;F:\\go_workspace",
    "go.useCodeSnippetsOnFunctionSuggestWithoutType": true,
}

 最后说下我的感受,vscode的使用体验不太好,主要是在提示着一块,反应迟钝,可能是机制本身的问题,而且安装时间比较长。轻量级的IDE可以试试LiteIDE,我使用的是JetBrains的IntelIjIDEA,使用体验很好,但是比较占资源,这个IDE,稍微轻量级一点的可以使用JetBrains的GoLand,资源占用稍小一些,体验也非常好。