打造高效Mac工作环境
打造高效Mac工作环境
文章摘要:作为一名开发同学我们每天都会携领我们的电脑和各式的代码和各样的问题打交道,手中Mac越是顺手和好用,我们的效率也会越高。最近入职领了新电脑,刚好借此把”折腾”电脑的过程记录下来留个备份,与大家一起探讨分享一些比较好用的工具和软件……
前言
作为一名开发同学我们每天都会携领我们的电脑和各式的代码和各样的问题打交道,手中Mac越是顺手和好用,我们的效率也会越高。最近入职领了新电脑,刚好借此把”折腾”电脑的过程记录下来留个备份,与大家一起探讨分享一些比较好用的工具和软件,如果有不足或更好的推荐也欢迎大家在评论区补充~
一、开发环境
这个就不用多说啦,写代码的基础,内部有很多新人资料已经介绍的比较详细,在这里简单汇总过一下
1、环境安装
包括JDK、Maven等等,推荐参考内网的快手Java开发后端开发指南
2、IDEA插件
iead安装完成后,少不了需要各种插件来为软件添砖加瓦,个人重点推荐几个插件如下:
Arthas-idea-plugin
Arthas作为后端开发的一个瑞士军刀,平时联调时查看调用链路、分析各环节耗时、排查线上的一些诡异问题时常常都少不了它的身影,该插件可解决我们自行去拼接命令的烦恼。
扩展链接:Arthas官方文档 、Karthas使用案例集锦
Maven Helper
Java开发中经常会遇到依赖冲突问题,使用mvn dependency:tree 的相关命令生成的依赖树的方式不够高效和直观,可以将该插件作为包冲突时的首要分析解决工具
扩展链接:Maven Helper使用方法、依赖冲突解决方式
Free Mybatis plugin
这是一款增强idea对mybatis支持的插件,如果原先项目中已经有很多mapper xml文件,该插件最好用的一个功能便是可以直接从Java方法调用点跳到对应的mapper.xml文件的对应SQL位置,避免我们自己去检索。其次如果项目需要用到一些复杂SQL可以用该插件快速的生成mapper.xml文件,如果是新项目且没有特别复杂的SQL更加推荐使用MyBatis-Plus框架可以让项目实现Mybatis的去XML化。
扩展链接: Free Mybatis plugin介绍
Codota
这是一个智能的代码补齐软件,它基于AI学习的功能,增强了IDEA的自动补全功能,有点类似于Idea的Live Templates功能,但却更加强大,不仅有基础代码模板的生成还支持各种API的调用代码框架补全,能够跟据我们历史的编程习惯,对Idea的提示补全功能进行优先级排序。并且如果遇到一些不太熟悉的编码代码,如:不太清楚okHttp的SDK怎么使用,可以直接在idea中检索开源项目中okHttp是如何使用的,避免了我们在浏览器和idea间的来回切换,可以大大提高我们的编程效率。

扩展链接:codota官网、codota使用方式
Builder Generator
对于一些大对象而言,初始化的可选参数往往很多,一个比较优雅的方式可以使用建造者模式来优化对象的创建方法。而我们自己去写对应的builder代码很麻烦,且重复繁琐,该插件可以通过简单的勾选一键生成对应的builder代码,十分的便利。
IDEA美化相关
在安装了工具类插件外,如果觉得已经看腻了长久已经没有做过更新Idea的UI界面,可以安装一些美化类插件来为自己的Idea换个皮肤,让其焕然一新,个人比较推荐下面的两个插件:
Material Theme UI *_和 *_Atom Material Icons 一个是换界面UI的,一个是对默认图标进行替换,安装完成后的效果图如下:
字体和背景色可以根据喜好自行在idea的设置中进行微调。
其他
对于一些其他好用插件推荐和使用技巧也可以参考下面几篇不错的文章,大家可以根据自己的个人偏好进行选择使用:
二、更强大的终端
Mac相较于Windows作为开发电脑而言,一个很大的优点便是系统原生就有着良好的终端命令支持,如果习惯了使用终端很多事情是比可视化操作更加地方便快捷,下面是自己几款墙裂推荐的终端软件:
brew
使用mac必备的一个软件管理工具,也是我们安装其他工具的一个前置步骤,对于新安装brew的小伙伴而言需要注意的一点是由于在安装brew的时候需要用到git的相关命令,所以我们需要前置安装 Git(Git软件下载地址),否则会报如下错误:
> ==> Downloading and installing Homebrew…
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (10/10), done.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
Failed during: git fetch origin master:refs/remotes/origin/master –tags –force
等Git安装安装完成后,便可以通过下面的命令安装 brew
1 | |
on-my-zsh
当我们在终端敲下一个命令后,命令的执行离不开命令解析器,而mac和linux默认的命令解释器Bash比较基础,缺少很多自定义的扩展功能,我们第一步就需要先让基础的命令解释器更加的好用,目前比较流行的是ZSH。
ZSH有更多的自定义选项,并支持扩展,它可以实现更强大的命令补全,命令高亮等一系列酷炫功能,而更强大的功能和更多自由扩展往往需要的配置步骤也会更多,为了让大家更好快速的使用上更强大的ZSH,一个叫 robbyrussel 的用户在 GitHub 上制作了一个开源配置文件 oh-my-zsh的项目,这是目前最火的一套 Zsh 配置方案,可以让用户开箱即用的完成很多常用的ZSH功能配置。该过程的几个设置步骤如下:
a、安装ZSH
直接通过brew命令安装
1 | |
b、安装on-my-zsh
通过curl来安装
1 | |
c、安装几个常用的ZSH插件
智能目录跳转软件autojump
使用brew来安装
1 | |
安装完成后在~/.zshrc文件的最后添加如下配置
1 | |
命令补全工具 zsh-autosuggestions
执行如下命令
1 | |
终端命令高亮工具zsh-syntax-highlighting
执行如下命令
1 | |
d、插件配置
上面的步骤已经把比较常用的几个插件下载到了电脑上,我们修改下ZSH的配置文件启用这几个插件即可,打开~/.zshrc文件,然后找到plugins关键字,系统默认已经加载git文件,然后我们再追加下这三个插件即可:
1 | |
启用完成后重新打开终端,或者通过source ~/.zshrc命令重新引入终端的配置,就可以看到效果啦
e、效果示例
git命令直接使用缩写即可无需再打出完整的git命令,zsh中的git命令缩写;
使用j ${目标目录名}便可以直接快速跳转到指定目录,如下图所示:
输入命令时有智能提示,且通过高亮效果能判断出命令是否输入正确等等。
powerlevel9k
号称是Zsh下最漂亮的皮肤主题,项目地址https://github.com/Powerlevel9k/powerlevel9k,当然这个主题不仅仅是让终端看起来更加好看,更可以让命令行中透出更多的信息,例如:可以直接看到git的状态,是否需要拉代码、本地有几个变更还没有推送、git文件是否存在未解决的冲突等等,一个示例效果图如下:
该主题的安装步骤只需按顺序执行下面三个命令即可:
1 | |
不过需要注意的是系统的默认字体对于一些特殊符号的展示可能会存在问题,如下图:
我们需要再安装下对应的主题字体便可以解决乱码问题,该步骤可以参考博客:powerlevel字体配置
如果不喜欢主题默认的配色方案,可以访问开源项目最舒服的终端配色方案,找到自己比较喜欢的颜色风格,下载对应的颜色配置文件,然后在Iterm2中的设置(快捷键CMD+i)中导入即可。
tldr
在使用终端时常常会忘记某些命令的用法,例如,想使用find命令按照文件名来查找某个文件,但又忘记应该拼接什么参数。这时我们可以想到使用系统自带的man命令来查看该命令的用法,但使用过man命令的同学常常会有如下体会,我们就临时使用一个命令,但man命令的使用说明过于详细冗长,阅读到自己想要的功能几分钟已经过去了,并不适合作为一个命令的速查方式。上网找文章查看,又需要来回点击网页且需要在浏览器和终端间切换,效率不够高,这种场景下tldr工具便是一个极佳的选择,可以直接列出某个命令的高频用法,并给出对应的示例说明,效果图如下:
有了tldr在绝大多数场景下便可以解决我们忘记命令的烦扰, 对于一些低频的命令也无需再去专门进行记忆,要用时在命令行速查即可。
安装方式
1 | |
项目地址
thefuck
上面tldr工具解决了我们记住了命令但对用法比较生疏的情况。而有时我们会遇到命令的拼写也记不太清,或者命令敲错的情况,例如,将python打成了ptyhon,执行apt-get install vim安装软件时忘记加上了sudo,这时便会想有没有什么工具无需让我们去查询命令的正确用法,或者无需再让我们重新敲一遍正确命令,而它直接替我们把错误的命令纠正过来。the fuck便是这样一个神器,在我们敲错命令时,直接对命令行说fuck,它便会基于自己的命令库检索功能来提我们修正错误的命令, 提升我们的工作效率,演示图如下:
安装方式:
1 | |
项目地址:
Tmux
终端复用的一款神器,要理解这款神器前先引用阮一峰大神的介绍,来让大家了解下Tmux的核心理念:
会话与进程
命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称”窗口”),在里面输入命令。用户与计算机的这种临时的交互,称为一次”会话”(session) 。
会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。
一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。
为了解决这个问题,会话与窗口可以”解绑”:窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话”绑定”其他窗口。
Tumx的作用
Tmux 就是会话与窗口的”解绑”工具,将它们彻底分离。
(1)它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
(2) 它可以让新窗口”接入”已经存在的会话。
(3)它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
(4)它还支持窗口任意的垂直和水平拆分。
原文链接:Tmux 使用教程
Tmux在我们需要SSH连接到远程服务器的场景中十分有用,一方面可以保持会话长久保活,避免长时间未操作而导致会话断开连接,类似于screen;另一方面我们去服务器排查问题和查日志时常常需要用到多个终端窗口来对照分析,如果需要我们一个去SSH连接打开的话特别费事,还需要在多个终端窗口间频繁切换,效率比较低,而有了Tmux这两个痛点便都可以解决
安装方式
1 | |
使用说明
大家可以直接参考阮一峰老师上面的博客,介绍的已经比较详细了,其中自己遇到的一个问题时对窗口更名后,随便使用ls或cd命令后,发现window名称会随着目录的不同而变化,我们的自定义命名不起作用。网上搜了后发现这个是zsh下oh-my-zsh的特性导致的,需要我们将**~/.zshrc**配置文件中的DISABLE_AUTO_TITLE="true"这一行注释掉,然后执行source ~/.zshrc导入配置,再去用Tumx修改窗口的名称,便不会发生变化
更加友好的个性化配置
Tmux虽然功能十分强大,但不得不吐槽的是其默认的快捷键配置设计的并不是特别人性化,键位的组合以及窗口切换比较麻烦。为此,我们通过更改配置项让Tmux使用起来更加的高效,下面是一份常用的配置文件,直接将该配置复制到 ~/.tmux.conf文件中即可
1 | |
参考博客: Tumx关键配置项
cloc
可以统计某个目录或者某个git版本下所用到的各种编程语言的代码行数,并可以识别出其中的空行和注释代码,十分的轻量简洁
安装方式:
1 | |
项目地址:
三、系统软件
Clipy
一款强大免费开源的系统剪切板增强软件,可以保存我们剪切板的历史记录,文本、图片等均可以保存下来,避免在一些复制粘贴的场景来回的去切换复制的上下文,并且也可以将我们一些常用的命令或者测试账号等文本片段保存在软件中,实现常用文本的随取随用。
演示效果:
下载地址:
Magnet
系统分屏软件,可以帮助我们快速整理桌面窗口应用,实现多窗口的协同工作
演示效果:
在AppStore中可以下载
TotalSpace 2
一款好用的桌面管理软件,自己使用mac的一个必装软件,有了Magnet解决了我们在一个桌面下多个窗口的协作问题,但工作中我们常常要在编程、记笔记、浏览器、终端等各个场景下切换,如果这些软件在一个桌面的多个窗口打开显得十分拥挤,且切换不够方便。那么可以根据我们的场景,在系统中划分出多个桌面,并将不同的软件划归到不同的桌面中,在每个桌面下只进行特定的工作场景,然后我们可以按使用场景通过快捷键或者鼠标动作来切换我们的工作桌面,这样就会让桌面和窗口间变得更加井井有条,不同场景所面对的窗口也更加的聚焦,真实效果可以参考下面的演示图:
下载地址:
官网的售价比较贵,可以在淘宝上搜索该软件名,在荔枝软件等店铺购买激活码进行激活
Alfred
Mac下大名鼎鼎的经典效率神器,可以类比于Mac自带的聚焦搜索的”超级加倍”,Alfred中可以支持自定义的工作流,相当于插件机制,在默认搜索的功能的基础下可以下载网友开发的插件来进行功能扩展,实现诸如搜索Maven坐标、单词翻译、快捷搜索、文档API查询、URL编解码、搜索浏览器某个书签甚至可以进行变量起名,基本上有了Alfred工作中的大多数搜索都可以集成在这个万能搜索框中,效果图:

下载地址:
WorkFlow插件仓库:
常用WorkFlow推荐
TinyCal
日历时间软件,快速查看时间和日历,并可以增加对应的待办事项提醒,可以代替系统的日期&时间以及日历软件,效果图如下:
更加强大之处在于它也可以支持我们用dataPattern表达式自行定义想要展示的时间(日期Pattern大全)
LICECap
一个开源免费的录制Gif工具,在IM沟通中描述某个现象和操作还是一个简单的录屏更加的直观快速,该软件不到1M大小,用起来很方便,该文章中的动图就是用该软件录屏的。
下载地址:
如果比较追求软件颜值和功能强大,也可以尝试Kap
四、浏览器插件
FeHelper
浏览器中常用的小工具集合,包括base64转换、二维码生成、JSON格式化、Crontab生成、颜色码提取等等
Tampermonkey
必装神器,可以实现搜索引擎的结果多列展示、搜索结果自动翻页、去除知乎及CSDN等网址登录框提醒、屏蔽各种推广广告、解除网页的复制等限制等,网上插件库中有上千款网友开发的插件可以根据的自己的需要自行的下载安装。

插件库:
Stylish
实现网页样式的自定义,可以下载一下网友的插件来实现让谷歌、百度等网页样式更加的清爽简洁
样式库:
crxMouse
鼠标手势,快速实现前进、后退、关闭网页、撤销关闭、新建浏览器标签等操作
Octotree
用树状的项目结构来查看github中的代码