【Golang】Mac下配置Go语言开发环境
入职便领了一台MacBook Pro
,不怕大家笑话,博主从来没用过mac
,刚拿到手就很懵逼,虽说咱linux
又不是没用过,但是冷不丁的切换至Mac
用于工作,按照惯例也不配鼠标,刚开始还真有一点无所适从,不过经过两天的使用,摸索,渐渐也熟悉了Mac
。本篇就主要归纳总结一下如果在Mac
下配置Go
语言开发环境,捎带手的提一下Mac
的使用与开发工具vscode的配置。
1.Mac的使用
写在前面,mac
的键跟我们平常使用的键盘不太一样:⌘、⌥、⇧、⌃、⎋
- ⌘(command):四方角花型,称为花键
- ⌥(option)(alt):Z字加一杠
- ⇧:Shift
- ⇪(caps lock)
- 我的键盘标注为中/英
- ⌃(control):向上的尖括号
- ↩(return)
博主在网上找了一张键盘图布局:
然后就是手上的MacBook Pro
的布局,出入不大:
这里只记录博主在使用,迫切的一些常用操作,快捷键:
1.1 锁屏
这个午休,上洗手间,习惯性的锁屏:control+command+Q
1.2 大小写锁定
只输入少量大写采用shift+字母键
,但是想输入大量大写,就需要大小写锁定:
- 大写锁定:
shift+caps lock
- 大写解锁:
caps lock
1.3 新建文件夹
桌面上想创建文件夹:command+shift+N
1.4 删除文件夹
选中,删除文件夹:command+退格键
1.5 窗口隐藏
触摸板上,四根手指进行展开,经过试验,小拇指不要参与。
最小化
command+M
隐藏
command+H
:这个一直可以隐藏至桌面最后一层。
1.6 返回桌面
这个在windows下经常用,开了太多的窗口,只想一键返回:command+option+H+M
1.7 微信快捷截图
这个常用,可以打开微信设置,一般就使用默认的control+command+A
1.8 全屏模式切换
command+control+F
1.9 系统截图
- shift + command + 3(全屏截图)
- shift + command + 4(局部截图)
- shift + command + 4 + 空格(窗口截图)
- shift + command + 6(Touch Bar截图)
shift + command + 3为全屏截图,按下之后系统会快速进行截图而不用手动选取。
shift + command + 4为局部截图,按下之后需要使用鼠标拖动想要截图的画面。
如果想要截屏整个窗口的话,可以在按下shift + command + 4之后按下空格键,这样系统就会进入窗口截图模式。在这个模式下,系统会自动帮你选取完整的窗口,然后制作出一张带有阴影的留白的截图,你要做的只是点击一下鼠标而已。相比起传统的截图,这种完整窗口的截图看上去好看不少。
shift + command + 6,可以截取Touch Bar的显示内容。截图完成之后,文件会默认保存在桌面。截图默认格式为PNG
1.10 隐藏文件的显示/隐藏切换
在开发过程中,有很多配置文件都是以.
开头的,但是在mac
中,这种文件就是隐藏文件,默认是不显示的,所以可以通过**command+shift+.**进行隐藏文件的显示/隐藏的切换。
1.11 在当前文件夹打开终端
在windows下经常需要在当前文件夹下打开cmd或者powershell;
打开访达→服务→服务偏好设置,勾选新建位于文件夹的终端窗口。当然博主这边设置了一下快捷键,目前还没跟其他快捷键冲突:control+⌥+T
其余终端命令就不赘述,什么cd
ls
vim
都跟linux
下差不多,更多快捷键参考:
https://support.apple.com/zh-cn/guide/terminal/trmlshtcts/mac
https://support.apple.com/zh-cn/HT201236
2.Go语言开发环境
熟悉系统后,重要进入正题了,开发环境的搭建。
2.1 下载安装
Go官网下载地址:https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
下载darwin-amd64.pkg
(2022-11-01勘误,请选择arm64,否则后面不能进行调试,详情请参考【Golang】无法调试Golang程序——Mac(M1芯片)上)后,直接打开安装,点击下一步安装即可,跟windows
的msi
安装一样简单,最终会将go
安装到/usr/local/go
目录下;
gopath会默认指定为/Users/xxx/go
2.2 修改代理
这个很重要,无论是下面的visual studio code
下载开发工具需要,还是再往后开发阶段下载包同样需要。
go env -w GOPROXY=https://goproxy.cn,direct
3.Visual Studio Code配置
Goland
是收费的,不知道公司是否有统一授权或者那种批量授权,好像是需要自己想办法激活,要么交钱,要么xx,博主这边暂时先安装Visual Studio Code
,首先在windows下用过,其实也还顺手,但在windows
下存在如下问题:
- 智能提示时灵时不灵
- go-lint反应迟钝;
但是这些问题,在mac下均不存在,有人说在ubuntu下也不存在,手上有ubuntu的童鞋可以测试一下。私以为如果这些问题都不存在,那么visual studio code的开发体验会很好的。
3.1 下载安装
官网:https://code.visualstudio.com/docs/?dv=osx
博主是很久没有下载安装vscode了,人说士别三日当刮目相待,没想到vscode下载会变得这么慢,以前超快的,刚开始我还以为是windows和mac版本问题,最后发现在windows下下载也变得同样缓慢,缓慢到最后,甚至会Failed-Network error.
下载缓慢解决方案
复制官方下载链接:https://az764295.vo.msecnd.net/stable/054a9295330880ed74ceaedda236253b4f39a335/VSCode-darwin-universal.zip
将az764295.vo.msecnd.net
替换为vscode.cdn.azure.cn
,https://vscode.cdn.azure.cn/stable/054a9295330880ed74ceaedda236253b4f39a335/VSCode-darwin-universal.zip,然后将完整地址用于浏览器打开,下载速度就起来了。
3.2 安装中文简体插件
这个看自己的意愿,博主觉得英文也大概能看懂。直接再插件中搜索chinese
,第一个就是中文简体插件,下载安装后记得重启。
3.3 安装go开发扩展
安装Go
扩展插件,让vscode支持Go语言开发。
3.4 安装go开发工具
command+shift+P
,键入go install
,选择Install/Update Tools
,全选-OK,对工具进行安装
所有的开发工具都会安装至gopath
目录的bin
中,如下图:
后续如果继续安装一些开发工具,例如air
,husky
等等,也会安装至此。
3.5 设置环境变量
上一节已经提到,一些开发工具会安装至GOPATH
中,所以我们需要把$GOPATH/bin
设置为环境变量,以便我们可以直接使用这些工具,windows
下没有这个步骤,因为msi安装过程中自动设置了。
bash
vim ~/.bash_profile
export PATH=$PATH:/Users/fieldrandy/go/bin
source ~/.bash_profile
zsh
如果每次都是使用bash终端,那么上面的修改已经生效,但是因为在mac里默认使用的是zsh终端,一旦关闭这个终端后,要想再次使用配置好的环境变量,需要再次使用source命令,要想一劳永逸的在zsh中使用配置好的环境变量,必须执行下面的步骤才会在zsh中生效:
vim ~/.zshrc
export PATH=$PATH:/Users/fieldrandy/go/bin
source ~/.zshrc
3.6 配置settings.json
博主一口气安装了Prettier ESLint Vetur vscode-icon等插件
command+shift+P
- 输入
settings.json
- 选择
Preferences:Open Settings(JSON)
{
"editor.fontSize": 18, //编辑器字体大小
"workbench.iconTheme": "vscode-icons", //vscode文件图标主题
"go.formatTool": "goimports", //golang格式化工具
"editor.defaultFormatter": "esbenp.prettier-vscode", //编辑器格式化工具
"[javascript]": {
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
}, //javascript格式化工具
"[vue]": {
"editor.defaultFormatter": "octref.vetur"
}, //vue格式化工具
"[go]": {
"editor.insertSpaces": false,
"editor.formatOnSave": true, //保存自动格式化go语言代码
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
"editor.defaultFormatter": "golang.go", //格式化器
"editor.suggest.snippetsPreventQuickSuggestions": false
},
"editor.insertSpaces": false,
"workbench.editor.enablePreview": false, //打开文件不覆盖
"search.followSymlinks": false, //关闭rg.exe进程
"editor.minimap.enabled": false, //关闭快速预览
"files.autoSave": "afterDelay", //编辑自动保存
"editor.lineNumbers": "on", //开启行数提示
"editor.quickSuggestions": {
//开启自动显示建议
"other": true,
"comments": true,
"strings": true
},
"editor.tabSize": 2, //制表符符号eslint
"editor.formatOnSave": true, //每次保存自动格式化
// "eslint.codeActionsOnSave": {
// "source.fixAll.eslint": true
// },
"prettier.eslintIntegration": true, //让prettier使用eslint的代码格式进行校验
"prettier.semi": true, //去掉代码结尾的分号
"prettier.singleQuote": false, //使用单引号替代双引号
"javascript.format.insertSpaceBeforeFunctionParenthesis": true, //让函数(名)和后面的括号之间加个空格
"vetur.format.defaultFormatter.html": "js-beautify-html", //格式化.vue中html
"vetur.format.defaultFormatter.js": "vscode-typescript", //让vue中的js按编辑器自带的ts格式进行格式化
"vetur.format.defaultFormatterOptions": {
"js-beautify-html": {
"wrap_attributes": "force-aligned" //属性强制折行对齐
},
"prettier": {
"semi": false,
"singleQuote": true
},
"vscode-typescript": {
"semi": false,
"singleQuote": true
}
},
"eslint.validate": [
"vue",
// "javascript",
"typescript",
"typescriptreact",
"html"
],
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"workbench.colorTheme": "Winter is Coming (Dark Blue)",
"editor.suggestSelection": "first",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"editor.fontLigatures": true,
"terminal.integrated.tabs.enabled": true
}
3.7 修改主题
command+shift+P
- 输入
color theme
- 选择
Preferences:Color Theme
这里可以选择已有主题,博主一般喜欢安装另外主题Install Additional Color Themes...
Winter is Coming Theme
3.8 修改字体为Fira Code
关于Fira Code
字体这个事情,博主不推荐,也不建议,也不评价,反正就是仁者见仁智者见智的事情,喜欢的真喜欢,讨厌的真讨厌。喜欢就用吧,讨厌就别看了,反正当您用了Fira Code
字体后,您的代码就会变成这样:
下载
https://github.com/tonsky/FiraCode/releases/tag/5.2
安装
上面的压缩包打开ttf
文件夹:
- 全选所有字体文件
- 右键→打开方式→字体册(Open With Font Book)
- 安装字体
brew
方式参考:https://github.com/tonsky/FiraCode/wiki/Installing
配置vscode
command+,
打开settings的可视化配置,搜索font family
,把Fira Code
填入即可。
更多方式参考:https://github.com/tonsky/FiraCode/wiki/VS-Code-Instructions
3.9 配置代码片段快捷键
这个就是一个大的代码片段用快捷键代替。例如输入pkgm,就会补全代码片段:
package main
func main(){
}
command+shift+P
→snippets
→go
{
"println":{
"prefix": "pln",
"body":"fmt.Println($0)",
"description": "println"
},
"printf":{
"prefix": "plf",
"body": "fmt.Printf(\"$0\")",
"description": "printf"
}
}
4.补充golang跨平台编译
默认我们go build
的可执行文件都是当前操作系统可执行的文件,刚好博主的博客一键发布工具以后可能会在mac上使用,go是支持交叉编译的,在一个平台生成另一个平台的可执行程序,先编译一版吧,在windows下编译Mac64为可执行程序,在cmd中执行如下命令:
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build
ps:.net core
也支持交叉编译。【Deploy】记一次Linux程序部署(Python与Dotnet Core)3.1节有介绍。
就总结到这儿吧,后续可能还会补充!
- 原文作者:Garfield
- 原文链接:http://www.randyfield.cn/post/2021-06-03-go-mac/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。