一、vscode-go插件安装

  1. go 1.10.2 https://golang.org/dl/ 需要墙
  2. vscode 1.23.1 https://code.visualstudio.com/
  3. vs插件安装

二、vscode-go 配置

  1. settins.json 基本上不需要配置,用默认值就可以了。如需调整 文件 -->首选项 -->设置 输入go即可查看go相关配置
{
"git.ignoreLimitWarning": true,
//开启自动保存
"files.autoSave": "onFocusChange",
"go.buildFlags": [],
"go.lintFlags": [],
"go.useCodeSnippetsOnFunctionSuggest": false,
"[go]": {
"editor.insertSpaces": false,
"editor.formatOnSave": true
},
"go.formatTool": "goreturns",
"go.goroot": "C:\\Go",
"go.gopath": "D:\\GoPath"
}
  1. launch.json配置,文件 -->打开文件 -->(选择GOPATH文件夹)

{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "debug",
"remotePath": "",
//"port": 2345,
//"host": "127.0.0.1",
"program": "${fileDirname}", //workspaceRoot
"env": {},
"args": [],
"showLog": true
}
]
}

三、组件&工具安装前期准备工作

由于要安装的组件大量引用了golang.org官方原生的一些代码(特别是tools/lint),因此引用代码不存在的话会导致第三方的源代码编译不通过,且大量报错

directory "D:\GoPath\src\golang.org\x\tools\go\buildutil" is not using a known version control system 等等...

golang.org官方源码列表 & 对应的github.com映射关系,可视情况安装:

github.com golang.org 源码大小 是否必须
git@github.com:golang/lint.git golang.org/x/lint 470kb Y
git@github.com:golang/tools.git golang.org/x/tools 21.4mb Y
git@github.com:golang/sys.git golang.org/x/sys 8.74mb Y
git@github.com:golang/text.git golang.org/x/text 46.9mb -
git@github.com:golang/net.git golang.org/x/net 12.6mb -
git@github.com:golang/tour.git golang.org/x/tour 12.6mb -

Tips:先检查下 %GoPath%\src\golang.org\x 文件夹下的tools/lint等是否是从github获取的最新版本,若文件夹不存在自己创建

(注意一定要是git clone,而不是下载zip解压),正确如下图所示




关于golang包管理机制,另一篇文章 window下golang包管理glide使用说明也是解决类似问题。go官方也许会在go2.0的版本解决

四、正式开始安装组件&工具

官方文档说明 https://github.com/Microsoft/vscode-go/wiki/Go-tools-that-the-Go-extension-depends-on

vscode也可以通过ctrl+shift+p 运行命令一次性安装所有这些工具

Go: Install/Update Tools



组件安装过程稍微有一点慢,耐心的等待...

安装的组件 默认安装状态 组件备注 github.com->golang.org
go get -u -v github.com/nsf/gocode SUCCEEDED 自动补全
go get -u -v github.com/uudashr/gopkgs/cmd/gopkgs SUCCEEDED 自动补全未导入的包
go get -u -v github.com/ramya-rao-a/go-outline SUCCEEDED 当前文件中按符号搜索 https://github.com/golang/tools
go get -u -v github.com/acroca/go-symbols SUCCEEDED 当前workspace中按符号搜索
go get -u -v golang.org/x/tools/cmd/guru SUCCEEDED 查找所有引用组件
go get -u -v golang.org/x/tools/cmd/gorename SUCCEEDED 重命名符号
go get -u -v github.com/fatih/gomodifytags SUCCEEDED 修改结构上的标签
go get -u -v github.com/haya14busa/goplay/cmd/goplay SUCCEEDED for running current file in the Go playground
go get -u -v github.com/josharian/impl SUCCEEDED for generating stubs for interfaces
go get -u -v github.com/davidrjenni/reftools/cmd/fillstruct SUCCEEDED for filling a struct literal with default values
go get -u -v github.com/rogpeppe/godef SUCCEEDED 转到定义2
go get -u -v golang.org/x/tools/cmd/godoc SUCCEEDED 鼠标悬停显示文档注释2
go get -u -v sourcegraph.com/sqs/goreturns SUCCEEDED 格式化代码2
go get -u -v github.com/golang/lint/golint SUCCEEDED for linting https://github.com/golang/lint
go get -u -v github.com/cweill/gotests/... SUCCEEDED 生成单元测试
go get -u -v github.com/derekparker/delve/cmd/dlv SUCCEEDED 调试
go get -u -v github.com/zmb3/gogetdoc 转到定义2/鼠标悬停显示注释2
go get -u -v golang.org/x/tools/cmd/goimports 格式化代码2

经过步骤三的tools和lint的clone后安装正常都应该是SUCCEEDED,且不需要墙,如遇个别安装FAILED 再单独执行go get ...,看还缺少什么在http://github.com/golang 中找到相应的组件按同样的方法clone在golang.org/x文件夹下

TIPS:go版本和组件全部都重新安装一遍后也能解决vscode 运行go卡的问题,具体原因不详,建议go版本更新后最好都重新安装下组件。

之前一直嫌弃vscode运行go卡而用liteide。重新开始用vscode主要原因: 1、颜值高 2、vscode已成为了非常流行的IDE

五、 cannot find package错误



检查go环境变量配置,新安装的go1.10.2的版本默认会在当前用户新增一个GOPATH导致冲突无法编译,删除即可

六、 调试/生成

  1. vscode打开main.go直接F5就可以运行&调试
  2. 生成exe,vscode F5运行会在根路径下生成一个debug文件,把debug文件重命名加.exe后缀可以直接当应用程序运行

    另一种方式cmd切换到项目文件夹下用
go build -o demo.exe main.go

意思是main.go生成名为demo.exe应用程序,go build生成的exe实际比debug要小

vscode golang配置说明的更多相关文章

  1. vscode golang插件下载

    此处是windows,linux操作类似 进行如下命令进行目录切换:cd %GOPATH%\src\github.com\golang我这里的GOPATH是在D:\go_project如果src目录下 ...

  2. #dokcer部署code-server web版vscode+golang

    codercom/code-server:latest不支持插件在线安装 codercom/code-server:v2目前为最新版1. #创建 docker rm -f vscode docker ...

  3. vscode中文配置说明

    1.官网下载vscode安装完毕后, 2.在扩展中搜索chinese,选择:“Chinese (Simplified) Language Pack for Visual Studio Code” 3. ...

  4. 彻底解决go get golang.org/x等包失败与VSCode golang插件安装失败问题

    由于某种众所周知的一些原因,https://golang.org/ golang 的官方域名是被墙了的,这也就导致了, 在广大 go 开发者使用 golang 的时候,总会出现 go get 失败的问 ...

  5. vscode golang 不能自动补全问题

    问题描述: 使用vscode编辑go语言时,有时候会莫名其妙的代码不能自动补全,struct的属性值不能自动提示,这时候如果重新启动vscode也没有效果,就可能是gocode插件出了问题或者有了更新 ...

  6. vscode golang vue配置

    { "files.autoSave": "off", "window.title": "${dirty}${activeEdito ...

  7. golang之vscode环境配置

    go语言开发,选择vscode作为IDE工具也是一个不错的选择,毕竟goland收费,老是破解也挺麻烦,除了这点,不过说实话挺好用的.vscode的话相对来说就毕竟原始,适合初学者. 1.vscode ...

  8. 在VSCode中成功安装Go相关插件问题:tools failed to install.

    一.介绍 目的:本文将主要介绍在windows使用VSCode配置Go语言环境 软件:VSCode 二.安装出现的问题 完整信息如下 Installing tools at D:\GoPath\bin ...

  9. Podinfo,迷你的 Go 微服务模板

    ​项目介绍 Podinfo 是一个用 Go 制作的小型 web 应用程序,它展示了在 Kubernetes 中运行微服务的最佳实践. 它已实现的技术指标(截选自官方 README.md ): 里面每一 ...

随机推荐

  1. NOIP2018

    非常糟糕.从未意识到过考场debuff这么严重. 果不其然,高档选手强如txc实力AK:而像我这样的中档选手就是重在考场发挥和自我调整了吧. 究竟要付出多少代价才能领会一个教训 看来要尝试更自闭一点

  2. Vue实例和生命周期

    创建一个Vue实例 每个Vue应用都是通过Vue函数创建一个新的Vue实例开始: var vm = new Vue({ //选项 }) 数据与方法 当一个Vue实例被创建时,它向Vue的响应式系统中加 ...

  3. 中国电信物联网平台入门学习笔记2: DOME程序分析

    "墨子号NB-IOT开发板"提供的dome: 程序只要分为延时,定时器,串口通讯…… 工程文件在:…\STM32L1xx_StdPeriph_Lib_V1.3.1\Project\ ...

  4. URAL - 2065 Different Sums (思维题)

    题意: 给n和k,让你用不小于 k 个不同的数字构成一个长度为n的序列,使得序列中不同的区间和的数目最小. n,k<=500 k-1个数填一些数字的一正一负,这样有些区间和为0. 剩下的都填0. ...

  5. ACM Changchun 2015 J. Chip Factory

    John is a manager of a CPU chip factory, the factory produces lots of chips everyday. To manage larg ...

  6. poj 1328 安雷达问题 贪心算法

    题意:雷达如何放置?在xoy二维平面坐标系里面,x轴上方的为岛屿,x轴下方的是雷达要放到位置,如何放使得雷达放的最少? 思路 肯定放在x轴上减少浪费是最好的选择 什么情况下,雷达无法到达呢?--以这个 ...

  7. Linux学习-备份的种类、频率与工具的选择

    完整备份之累积备份 (Incremental backup) 还原的考虑 如果是完整备份的话.若硬件出问题导致系统损毁时,只要将完整备份拿出来,整个给他倾倒回去硬盘, 所有事情就搞定了!有些时候 (例 ...

  8. kettle-学习参考

    一      关于Kettle Kettle是一款国外开源的ETL工具,纯java编写,数据抽取高效稳定的数据迁移工具.Kettle中有两种脚本文件,transformation和job,transf ...

  9. HDU 5371 Manacher Hotaru's problem

    求出一个连续子序列,这个子序列由三部分ABC构成,其中AB是回文串,A和C相同,也就是BC也是回文串. 求这样一个最长的子序列. Manacher算法是在所有两个相邻数字之间插入一个特殊的数字,比如- ...

  10. Python虚拟机函数机制之名字空间(二)

    函数执行时的名字空间 在Python虚拟机函数机制之无参调用(一)这一章中,我们对Python中的函数调用机制有个大概的了解,在此基础上,我们再来看一些细节上的问题.在执行MAKE_FUNCTION指 ...