Mac OS安装Go语言及配置VSCode开发环境:一个工具(gopls)解千愁
前言
截止到目前为止,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安装包(被墙了,可能需要一些技能。。。)
下载完成后,点击安装,无脑下一步即可,中间只需要输入一次系统密码。
二、安装完成后验证是否安装成功
三、两种方式的区别
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种语言
其他
Mac OS安装Go语言及配置VSCode开发环境:一个工具(gopls)解千愁的更多相关文章
- mac攻略(五) -- 使用brew配置php7开发环境(mac+php+apache+mysql+redis)
前面介绍过基本的配置,后来我又从网上查找了很多资料,经过不断的摸索,下面做了一个总结,希望能对大家提供些许帮助(Mac版本是sierra) 一.mac系统会自带git,而我们要做的是自己安装git ...
- mac攻略(4) -- 使用brew配置php7开发环境(mac+php+apache+mysql+redis)
[http://www.cnblogs.com/redirect/p/6131751.html] 网上有很多文章都是错误的,因为是copy别人的,作者没有自己亲测,不仅不能给新手提供帮助,还会产生严重 ...
- 无废话--Mac OS, VS Code 搭建c/c++基本开发环境
无废话,直接上步骤. 1) 安装 xcode. 打开App Store,搜索xcode,进行下载安装. 2)执行命令: xcode-select --install 安装命令行工具. 3)安装VS C ...
- 在 IntelliJ IDEA 中配置 JSF 开发环境的入门详解
JSF 作为 JavaEE 官方标准,在了解并掌握其基本开发技术后,对于功能要求较高.业务流程复杂的各种现代 Web 应用程序开发将会成为非常合适且强大的高效率开发利器.JSF 的开发环境搭建涉及到在 ...
- HC32L110(三) HC32L110的GCC工具链和VSCode开发环境
目录 HC32L110(一) HC32L110芯片介绍和Win10下的烧录 HC32L110(二) HC32L110在Ubuntu下的烧录 HC32L110(三) HC32L110的GCC工具链和VS ...
- mac OS 安装配置Nginx服务器
系统环境 安装工具 Homebrew软件包管理器 :<mac OS 安装 Homebrew软件包管理器>https://blog.csdn.net/weixin_41791279/arti ...
- 在Mac OS X 10.8中配置Apache + PHP + MySQL
在Mac OS X 10.8中配置Apache+PHP+MySQL的内容包括: 配置Apache 配置PHP 安装MySQL 配置PHPAdmin 设置数据库默认字符集 一. 配置Apache 1. ...
- 在Mac OS X 10.8中配置Apache+PHP+MySQL
在Mac OS X 10.8中配置Apache+PHP+MySQL的内容包括: 配置Apache 配置PHP 安装MySQL 配置PHPAdmin 设置数据库默认字符集 一. 配置Apache 1. ...
- 【转】在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 ...
随机推荐
- 基于springcloud搭建项目-Feign篇(四)
上一篇已经写过ribbon客户端负载均衡的用法了,这篇主要是介绍feign的用法,首先我们必须了解feign是什么?能干嘛?怎么用? 这里简单介绍一下,然后进行代码测试 1.概述 Feign是一个声明 ...
- django models中字段
AutoField:一个自动递增的整型字段,添加记录时它会自动增长.你通常不需要直接使用这个字段:如果你不指定主键的话,系统会自动添加一个主键字段到你的model.(参阅自动主键字段) Boolean ...
- Java自学路线图之Java基础自学
自学Java要从Java基础语法开始自学,自学Java的过程中打好基础是很重要的!首先自学:面向对象基础,API基础,集合基础.这些对Java小白的数学和英语能力的要求门槛不高,在学习的过程中积累相应 ...
- 【猫狗数据集】使用top1和top5准确率衡量模型
数据集下载地址: 链接:https://pan.baidu.com/s/1l1AnBgkAAEhh0vI5_loWKw提取码:2xq4 创建数据集:https://www.cnblogs.com/xi ...
- java -封装一个类。(姓名、年龄、性别)
//定义一个类. public class Maopao1{ //创建私有的对象. private String name; private int age; private String sex; ...
- 凉鞋:我所理解的框架 【Unity 游戏框架搭建】
前言 架构和框架这些概念听起来很遥远,让很多初学者不明觉厉.会产生"等自己技术牛逼了再去做架构或者搭建框架"这样的想法.在这里笔者可以很肯定地告诉大家,初学者是完全可以去做这些事情 ...
- Postgresql实战经验之alter table 开小差了
Postgresql实战经验之alter table 开小差了 今天需要将一张有数据的表中一个字段varchar 类型转换为timestamp类型,但是pg的alter table 语句却开小差,出现 ...
- 聊聊 WebSocket,还有 HTTP
还记得曾经风靡一时的 QQ 秀聊天室吗?那时,还在上初.高中的我们,QQ 是最常用的聊天交友工具:而 QQ 秀聊天室的出现打破了只能按条件查找好友的局限性,大家可以随意进入聊天室房间,进行在线聊天.怀 ...
- 【转】Java JDBC对应C# ADO连接数据库之区别
JDBC对应C#连接数据库之区别 之前一直在用java,最近因为找了.NET的工作,开始学习.NET. 今天也是查了好多资料,但是一直没有看到和JDBC之间的对比博文,开始也是一头雾水! 但是功夫不负 ...
- 如何使用python图形化界面wxPython
GUI库主要有三类:tkinter,wxPython和PyQt5,下面主要是针对wxPython的使用说明. 下面的操作均在win10 + pycharm上进行 wxPython的安装: pip in ...