前言  

  截止到目前为止,Go语言已经更新到1.14.1,网上的很多教程均已经过时,我在此汇总并整理一下相关的教程,提供一个适合当下的Mac OS教程。

  教程中使用了Go在1.11之后推出的依赖包管理工具Go Modules[1],并使用了gopls来管理Go代码,让VSCode编写Go代码更加的顺滑。

  gopls是VSCode推出的调用微软官方的Language Server Protocol(LSP)[2]的扩展,包含了很多Go工具的功能[3],例如:godef(代码跳转),goimports(代码格式化),gocode(代码补全)等。

安装Go语言

一、安装主要有以下两种方式

1. Homebrew[4]安装(便于升级与卸载,推荐)

执行以下命令即可

brew install go

2. 官方下载pkg安装包(被墙了,可能需要一些技能。。。)

Go官方下载地址

下载完成后,点击安装,无脑下一步即可,中间只需要输入一次系统密码。

二、安装完成后验证是否安装成功

三、两种方式的区别

1. Homebrew安装

1) 通过以下命令升级和卸载

brew upgrade go

brew uninstall go

2) GOROOT路径

/usr/local/Cellar/go/<go 版本号>/libexec

2. 官方下载pkg安装包

1) 卸载时需要删除以下内容,升级则需要卸载后重新安装。

sudo rm -rf /usr/local/go

sudo rm -rf /etc/paths.d/go

2) GOROOT路径

/usr/local/go

Go环境变量配置[5]

Go的环境变量可以通过 go env 命令查看。在Go 1.13之后,无需再通过设置系统环境变量的方式来修改,可以通过 go env -w 命令来设置Go的环境变量。

需要设置的环境变量如下

# 用于存放依赖包及编译文件,比较随意,只要不和GOROOT重名即可,官方禁止这一行为。
go env -w GOPATH=/Users/<系统用户名>/Library/go
# 设置代理后,在未翻墙的情况下,打开VSCode后gopls工具的加载会很快。
go env -w GOPROXY=https://goproxy.cn,direct

VSCode开发环境配置

一、初始化Go项目

1. 在 ${GOPATH}/src 之外的任意位置创建一个Go项目。

2. 在项目内执行 go mod init 初始化当前Go项目。

3. Go项目内会出现一个 go.mod 文件。

二、VSCode插件配置

1. 插件列表

1) Go: VSCode官方提供的插件,可以使用Go的大部分工具。

2) Code Runner[6]: VSCode运行代码神器,支持运行40余种语言,可自行配置运行命令。

3) EditorConfig for VS Code[7]: 可以设置VSCode的代码编辑配置。

2. 插件配置

1) 在VSCode配置文件中添加 "go.useLanguageServer": true ,保存后,右下角会提示重启VSCode

2) 重启后右下角会提示安装gopls,点击安装即可。

3. 其他插件配置分享

"code-runner.runInTerminal": true,
"code-runner.ignoreSelection": true,
"code-runner.saveAllFilesBeforeRun": true,
"code-runner.executorMap": {
"python": "python3 -u",
"go": "cd $dir && go run ./",
"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"cpp": "cd $dir && g++ -std=c++11 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
},

Code Runner

root = true

[*]
charset = utf-8
indent_style = space
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

EditorConfig for VS Code

总结

  经过以上的配置,VSCode的Go开发环境已经配置完成,可以在VSCode中愉快的编写并运行Go代码了。需要注意的是,由于使用的是gopls,每次打开Go项目,会有10s左右的加载时间,加载完成之后代码跳转,自动补全等功能才可以正常使用。

参考

[1]. 干货满满的 Go Modules 和 goproxy.cn

[2]. Langserver.org

[3]. Go tools that the Go extension depends on

[4]. Homebrew常规使用教程

[5]. 关于GOROOT、GOPATH、GOBIN、project目录

[6]. [VSCode插件推荐] Code Runner: 代码一键运行,支持超过40种语言

[7]. 快速用上 editorconfig 来规范编辑

其他

  Mac OS修改VSCode Go的默认缩进格式

Mac OS安装Go语言及配置VSCode开发环境:一个工具(gopls)解千愁的更多相关文章

  1. mac攻略(五) -- 使用brew配置php7开发环境(mac+php+apache+mysql+redis)

    前面介绍过基本的配置,后来我又从网上查找了很多资料,经过不断的摸索,下面做了一个总结,希望能对大家提供些许帮助(Mac版本是sierra)   一.mac系统会自带git,而我们要做的是自己安装git ...

  2. mac攻略(4) -- 使用brew配置php7开发环境(mac+php+apache+mysql+redis)

    [http://www.cnblogs.com/redirect/p/6131751.html] 网上有很多文章都是错误的,因为是copy别人的,作者没有自己亲测,不仅不能给新手提供帮助,还会产生严重 ...

  3. 无废话--Mac OS, VS Code 搭建c/c++基本开发环境

    无废话,直接上步骤. 1) 安装 xcode. 打开App Store,搜索xcode,进行下载安装. 2)执行命令: xcode-select --install 安装命令行工具. 3)安装VS C ...

  4. 在 IntelliJ IDEA 中配置 JSF 开发环境的入门详解

    JSF 作为 JavaEE 官方标准,在了解并掌握其基本开发技术后,对于功能要求较高.业务流程复杂的各种现代 Web 应用程序开发将会成为非常合适且强大的高效率开发利器.JSF 的开发环境搭建涉及到在 ...

  5. HC32L110(三) HC32L110的GCC工具链和VSCode开发环境

    目录 HC32L110(一) HC32L110芯片介绍和Win10下的烧录 HC32L110(二) HC32L110在Ubuntu下的烧录 HC32L110(三) HC32L110的GCC工具链和VS ...

  6. mac OS 安装配置Nginx服务器

    系统环境 安装工具 Homebrew软件包管理器 :<mac OS 安装 Homebrew软件包管理器>https://blog.csdn.net/weixin_41791279/arti ...

  7. 在Mac OS X 10.8中配置Apache + PHP + MySQL

    在Mac OS X 10.8中配置Apache+PHP+MySQL的内容包括: 配置Apache 配置PHP 安装MySQL 配置PHPAdmin 设置数据库默认字符集 一. 配置Apache 1. ...

  8. 在Mac OS X 10.8中配置Apache+PHP+MySQL

    在Mac OS X 10.8中配置Apache+PHP+MySQL的内容包括: 配置Apache 配置PHP 安装MySQL 配置PHPAdmin 设置数据库默认字符集 一. 配置Apache 1. ...

  9. 【转】在Mac OS X 10.8中配置Apache + PHP + MySQL

    CHENYILONG Blog 在Mac OS X 10.8中配置Apache + PHP + MySQL 在Mac OS X 10.8中配置Apache+PHP+MySQL的内容包括: 配置Apac ...

随机推荐

  1. 从web现状谈及前端性能优化

    从web现状谈及性能优化 原文出处:<Karolina Szczur: The State of the Web> 性能优化指南The Internet is growing expone ...

  2. javascript中你可能遇到的隐式调用

    前言 不知道用隐式调用来形容是否确切,其行为总是隐藏在背后,时不时出来露脸一下,作用貌似不大,但是了解一下还是有用处的,保不准在你的使用下大有作为.所谓的隐式调用简单来说就是自动调用一些方法,而这些方 ...

  3. SpringBoot入门系列(四)整合模板引擎Thymeleaf

    前面介绍了Spring Boot的优点,然后介绍了如何快速创建Spring Boot 项目.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/ ...

  4. 第八章、小节二vuex

    a.用vuex首先先安装vuex npm install vuex --save b.在src目录下创建store文件夹,在store中创建index.js存放各个状态 c.在一个模块化的打包系统中, ...

  5. 新建eclipse工作空间的常用设置

    1.设置字体: Window->Preferences->(可以直接搜索font)General -> Appearance ->Colors and Fonts --> ...

  6. SpiningUP 强化学习 中文文档

    2020 OpenAI 全面拥抱PyTorch,  全新版强化学习教程已发布. 全网第一个中文译本新鲜出炉:http://studyai.com/course/detail/ba8e572a 个人认为 ...

  7. C++类的详解

    目录 一.类成员的访问权限 二.成员变量的命名 三.构造函数 四.析构函数 五.C++程序也很优雅 六.类的其它知识 七.可变参数 八.课后作业 九.版权声明 超女选秀的例子我们玩了很久,为了学习的需 ...

  8. centeos安装Anconda3

    步骤: #获取安装包 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.s ...

  9. 解决不管其他元素z-index设置多高,都在视频下面的方法

    <div style="z-index:-1"> <embed name="Movie1" src="http://ecards.s ...

  10. Java中static和final的解析

    static关键字和final关键字是Java中一个难点&重点.本文通过static的用途.常见问题.final的用途.final常见问题,以及static和final的对比来解释这两个关键字 ...