工欲善其事,必先利其器。 –《论语》
拖贵司的福,使上了Retina Macbook Pro 15,也就是RMBP,Mac中的顶配。使用了Mac一段时间之后,再也回不去Windows,家里的电脑也就玩dota的时候才使用一下,突然想起来已经很久没有玩dota了。
由于苹果公司的基因,Mac的用户体验非常的好。而其底层基于Unix,支持强大的命令行操作。相当于之前的windows+linux各种发行版,不,应该远大于才对。Mac不仅可以用来作为普通用户的休闲娱乐笔记本,更应该作为作为开发者的标配,当然针对开发者,这里主要指的还是Macbook Pro。
开发者工作效率的体现很大一部分是体现在使用工具上,正如本篇文章题目,每个开发者都应该有一套自己的Toolbox。而Toolbox中可以包括如下几个tool
- 编辑器
- 终端
- 文档管理
- 信息整合工具
编辑器
我现在最常用的连个编辑器是vim和Sublime Text 2(付费正版)。首先是vim,相信很多人都在使用,不多说。我也算是vim重度用户,自己从大二接触了linux就一直在使用,但我顶多算一年普通用户重复了6年,并不是什么高阶玩家,而当我注意到工具的重要性时,决定把vim的handbook先看一遍。经常有一些好为人师的人告诉我们东西用到了才去学,但是我却认为我们应该先站在视野的制高点,handbook就可以帮助我们实现。这也是我学习python,go语言的时候一定要把reference document撸一遍,这样才不会局限住。扯远了。除了vim之后,我打算尝试一下emacs。
再说sublime text。sublime毫无疑问是一款很优秀的软件,虽然是闭源收费的,但是可以无限期使用。另外让sublime流行开来的原因,除了本身的优点意外,各种各样的插件也有不小的功劳。但是我唯一担忧的是,它是闭源的。永远不能低估开源社区的力量。
终端
Mac下的终端推荐iTerm2.0。iTerm2.0我觉得比较好用的几个功能有
- 全屏下显示标签栏。设置:全屏的时候View -> Show Tabs in Fullscreen
- 切屏。⌘+d水平切分,⌘+shift+d垂直切分。
- 切分。⌘+f,支持正则表达式。
- 自动补全命令。⌘+’;’弹出自动补全窗口,列出曾经使用的命令。
- 高亮当前鼠标的位置。⌘+‘/’,在分屏多窗口的时候很有用。
文档管理
这里的文档指的是技术文档,我强烈推荐Dash。Dash简单来说就是一个api文档整合工具和代码片段管理工具。对于程序员来说,每天查看文档api都是必须的,而切换来切换去实在来浪费时间。说起Dash的作者,一个90后,2014年的年度总结是:收入27万美元,5周休假,整个5月都在打炉石传说。嗯,你们有什么想说的。
信息整合工具
信息整合工具主要是为了日常信息流中过滤出对自己有利的。最简单的就是浏览器的Bookmark,如何高效使用书签呢?我的建议是按知识体系或者用途来分类。关于书签还有一个小建议就是建一个”todo”书签,下次要学习的时候就去书签里面找就行了。记得web.py的作者Aaron Swartz写过一篇时间管理的文章里说到专门建立一个文件夹存放自己消遣的视频之类的东西,那么下次休息的时候直接打开文件夹就可以了。
类似于书签还有一些RSS订阅和“Read it later”应用。我现在使用的是Pocket。Pocket可以跨平台使用,相比于书签只能收藏网页,Pocket集成了几百款应用,最开始是国内的应用比较多,现在国内也有很多app开始支持pocket,比如知乎。另外在微信绑定绑定公众号之后,也可以在微信里关注Pocket,然后将喜欢的自媒体文章发送到自己的Pocket。
除此之后,还推荐云笔记。对于上面收集的网站,可以读完总结后记录到云笔记。常见的云笔记有有道云笔记,EverNote等,看个人喜好。
暂时只想到这么多,后面想到更多的再补充吧。