文档章节

Golang + vscode 开发环境配置

秋风醉了
 秋风醉了
发布于 08/21 15:16
字数 985
阅读 417
收藏 2

GOPATH 环境变量的配置 https://my.oschina.net/xinxingegeya/blog/718305

安装vscode go 扩展

下载vscode ,安装go的扩展https://github.com/Microsoft/vscode-go

该扩展对 Golang 支持非常丰富的功能:

  • 代码格式化
  • 保存时代码自动格式化
  • 自动添加 Imports
  • 代码错误提示
  • 引用查询与跳转到定义位置
  • Go 代码元素搜索
  • 文档查看
  • 支持代码调试等等功能。

安装完vscode,打开.go文件时,vscode会推荐安装go的包,但是vscode中有些go的包总是提示安装fail。这是因为go get 访问的一些包被墙了,虽然开了shadowsocks,但是shadowsocks是基于socks5协议的,go get则是使用http协议进行网络访问,因此开了shadowsocks, go get 依旧不通。同时 go get命令是在命令行里执行的,要给命令行设置代理。

方法1:

在终端中直接运行命令

export http_proxy=http://proxyAddress:port

这个办法的好处是简单直接,并且影响面很小(只对当前终端有效,退出就不行了)。

如果你用的是ss代理,在当前终端运行以下命令,那么wget curl 这类网络命令都会经过ss代理

export ALL_PROXY=socks5://127.0.0.1:1080

方法2:

把代理服务器地址写入shell配置文件.bashrc或者.zshrc

直接在.bashrc或者.zshrc添加下面内容

export http_proxy="http://localhost:port"
export https_proxy="http://localhost:port"

以使用shadowsocks代理为例,ss的代理端口为1080,那么应该设置为

export http_proxy="socks5://127.0.0.1:1080"
export https_proxy="socks5://127.0.0.1:1080"

或者直接设置ALL_PROXY

export ALL_PROXY=socks5://127.0.0.1:1080

localhost就是一个域名,域名默认指向 127.0.0.1,两者是一样的。

然后ESC:wq保存文件,接着在终端中执行source ~/.bashrc

这个办法的好处是把代理服务器永久保存了,下次就可以直接用了。

或者通过设置alias简写来简化操作,每次要用的时候输入setproxy,不用了就unsetproxy

alias setproxy="export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;"
alias unsetproxy="unset http_proxy;unset https_proxy;"

采用方法二,对所有终端执行的go get命令有效。

基本都安装成功了。 

配置用户设置 settings.json

{
    "debug.node.autoAttach": "on",
    "go.vetOnSave": "package",
    "editor.formatOnSave": true,
    "go.buildOnSave": "package", //在保存代码时自动编译代码
    "go.lintOnSave": "package", //在保存代码时自动检查代码可以优化的地方,并给出建议
    "go.buildTags": "",
    "go.buildFlags": [],
    "go.lintTool": "golint", //使用 golint 库来执行 lint操作,你也可以选择使用gometalinter
    "go.lintFlags": [],
    "go.vetFlags": [],
    "go.coverOnSave": false, //在保存代码时执行测试,并显示测试覆盖率
    "go.useCodeSnippetsOnFunctionSuggest": true, //使用代码片段作为提示
    "go.formatTool": "goimports", //使用 goimports 工具进行代码格式化,或者使用 goreturns和gofmt
    "go.formatFlags": [],
    "go.gocodeAutoBuild": true, //代码自动编译构建
    // "go.goroot": "/usr/local/Cellar/go/1.10.3/libexec", //设置 goroot,正常编译 go 代码。
    // "go.gopath": "/Users/junv/gocode:/Users/junv/mygocode", // 设置 gopath,有利于自动导入库
}

 

调试 go 程序

首先下载delve

当你第一次进行调试时,vscode 则要求你添加调试程序的相关配置。如下 launch.json,

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "remotePath": "",
            "port": 2345,
            "host": "127.0.0.1",
            "program": "${fileDirname}",
            "env": {
                // "GOROOT": "/usr/local/Cellar/go/1.10.3/libexec",
                // "GOPATH": "/Users/flyme/mygo:/Users/flyme/workspace-go"
            },
            "args": [],
            "showLog": false
        }
    ]
}

打上断点,点击箭头就可以调试代码了。

 

安装 Code Runner

搜索扩展Code Runner,点击安装,就可以直接通过按钮来运行代码了

 

跳转定义

跳转到函数定义只需要 ⌘+鼠标左键,或者直接按下F12即可。
返回到之前的按键是ctrl+-ctrl+shift+-,这样就能快速导航了。

============END============

© 著作权归作者所有

共有 人打赏支持
秋风醉了
粉丝 239
博文 573
码字总数 416999
作品 0
朝阳
程序员
私信 提问
如何快速正确配置VsCode Golang开发环境

Before Starting 本文分两部分 安装Golang 配置VsCode Golang开发环境 Golang version 1.10.3 Linux/macOS 默认安装路径为 Download & Install 下载对应版本的 Golang 如果是macOS可以运行 ...

SpiffyEight77
08/06
0
0
在Visual Studio Code中配置GO开发环境

一、GO语言安装 详情查看:GO语言下载、安装、配置 二、GoLang插件介绍 对于Visual Studio Code开发工具,有一款优秀的GoLang插件,它的主页为:https://github.com/microsoft/vscode-go 这款...

nothingfinal
04/03
0
0
升级golang版本导致vscode中golang没有代码提示问题处理

上半年安装了vscode中golang的插件,经过折腾代码提示这些都好了,但当时goland还可以用,就放弃了vscode来编写golang。下半年go升级1.11,最新版的goland没法用licence server激活了,又把v...

一路向北的兔斯基
11/01
0
0
vscode debug flask

一、前言 之前开发一直用Jetbrains旗下的Pycharm,该系列每个IDE产品都很惊艳。在GoLand还没出来的时候,Pycharm可以轻松集成golang环境进行开发,也可以轻松的集成DataGrip数据库管理工具,...

_青菜_
01/13
0
0
Visual Studio Code 使用babel设置

要使用es6,需要通过babel将es6转成es5的代码,才能在浏览器上运行。为了设置babel,在网上找了很多教程,最后参考了两篇文章,摸索着成功了。 参考这两篇文章: 基于vscode的node的ES2015(...

FeanLau
2017/11/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java.util.concurrent.atomic.AtomicLong 源码

类图: 源码: package java.util.concurrent.atomic;import java.util.function.LongUnaryOperator;import java.util.function.LongBinaryOperator;import sun.misc.Unsafe;......

狼王黄师傅
4分钟前
1
0
Java每天10道面试题,跟我走,offer有!(六)

51.HashMap的实现原理 HashMap的主干是一个Entry数组。Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值对。HashMap基于hashing原理,我们通过put()和get()方法储...

Java干货分享
10分钟前
1
0
剧调查黑客偏爱用 Python,可能是世界上最好的语言

导读 Python 变得越来越流行,在之前 9 月份的 TIOBE 排行榜中,Python 甚至挤下 C++,拿到第三名。而这有一部分原因应当归于黑客对 Python 的热衷。 据 Threatpost 报导,在 Imperva 最近一...

问题终结者
15分钟前
1
0
apollo生产环境配置-实践笔记(附搭建框架图)

前言 我们这个月上线了apollo1.1.1版本(生产环境),目前一切运行良好,故在此记个笔记。 首先,附上流程图: 简要介绍 一套apollo portal配置管理服务来同时管理pro、dev环境,但pro、dev...

开源小菜鸟2333
17分钟前
3
0
angular6 利用 ngContentOutlet 实现组件位置交换

这篇文章主要介绍了angular6 利用 ngContentOutlet 实现组件位置交换(重排),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ngContentOutlet指令介绍 ngCont...

嫣然丫丫丫
24分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部