Mac 是属于程序员的电脑,因为它不仅有好看的图形用户界面,还有非常好用的 Unix 命令行接口。我们编程中有很多任务都需要借助命令行来完成,比如 Git,文件操作,Shell 脚本等。

本文主要介绍我常用的一些 Mac 上面的极客工具。

命令行工具

iTerm2

iTerm2 是 Mac 上面 Terminal 的一个替代品,它本身拥有很多实用的特性。比如友好的全屏支持,无鼠标复制文件,搜索,自动补全等。完整的特性列表可以参考Features - iTerm2 - Mac OS Terminal Replacement

我当初选择 iTerm2 的原因主要是两个:一,配色好看。 二,支持本窗口全屏。(因为这样可以屏蔽 QQ 消息,编程的时候更专注)

Tmux

Tmux 是一个终端复用工具,因为我不想一次打开 N 个 iTerm2 窗口,有了 Tmux 只需要一个终端即可。另外在服务器端,如果远程服务器开启 Tmux,当你断开连接后,再次登陆服务器,Tmux 可以保存上次打开的会话。另外,Tmux 还可以方便地定义多窗口,支持结对编程。

Percol

以前在使用命令行的时候,当我需要输入一个历史命令的时候,我会按方向键不停地寻找。后来,我学会了 C-r 来搜索历史,效率大大提升。现在,我用mooz/percol , 它简直就是一个神器,让你可以通过 fuzzy match 的方式来搜索历史命令。

Zsh

Zsh 绝对是每一个终端爱好者提升效率的神器,结合robbyrussell/oh-my-zsh ,它可以让你的命令行效率提升 N 倍。Oh-my-zsh 提供了大量的主题和插件。现在,我推荐使用 zsh-users/antigen 来管理你的 zsh 插件。antigen 是和 Vim 的 Vundle 类似的包管理器,强烈推荐。

编辑器之神 Vim

关于 Vim 的赞美实在是太多了,我自己以前也是 Vim 的脑残粉。虽然我已转 Emacs,但是在服务器端,还有 Emacs 配置挂掉的时候,Vim 都是我的首选编辑器。而且我在 Emacs 里面使用的是 Evil 插件,把 Vim 的 modal editing 继承发扬光大。

Vim 之所以永不褪色,对我而言原因有二:

  1. Vim 很多 Unix 系统都是自带的,速度快。
  2. Modal Editing + 完美终端集成

编辑器 - Emacs

因为我现在基本上算是 Emacs 死忠粉,所以我会推荐所有程序员学一学。不仅因为 Emacs 是操作系统,Emacs 是神的编辑器。

Emacs 本质上是喜欢自由和 Hack 的极客们自己的工具,每一个 Lisp 黑客都有属于自己的配置。

另外,Lisp 也是一种魔法,谁学谁知道。

改键工具

Mac 本身

Mac 本身系统全局内置 Emacs 的快捷键:C-a/C-e/C-n/C-p/C-f/C-b, 如果 Ctrl 键不好按,那么你的小拇指可能会疼。通过 Mac 系统自己的改键,可以很方便地把 CapsLock 和 Ctrl 键互换。

2015-08-30-use-mac-like-a-geek_swap-ctrl-and-caps-lock.png

不管你是使用 Vim 或者 Emacs,甚至高效地使用 Mac 下面的命令行, 有一个舒服的 Ctrl 键都是必需的。

Karabiner - Software for OS X

这是 Mac 上面一款强大的改键工具,我用它把我电脑上面的右 Command 键改成了 F19. 这样相当于给电脑添加一个快捷键名字空间. 配合下面的 Keyboardmaestro 工具,可以实现非常酷的改键效果.

统计工具

快捷键的修改也是有学问的,通过统计方法,找出自己平时用得最多的软件和操作,然后设置相应的快捷键,这样效率是最高的。强烈推荐一个工具,可以统计你每天使用各种软件的时间以及按键的分布。

WhatPulse

GUI 工具

Beyond Compare

这个软件是收费的,不过有时候确实很管用。比较文件和文件夹差异,应该是我已知的最强大的工具了。

Source Tree

这个没啥好说的,跨平台的 Git 图形工具。 我一般只用它来解决冲突,偶尔也用它来做 Commit 之前的 Code Review。因为 Emacs 的 Magit 是最好的 Git 工具。

Sublime Text

这个主要是开箱即用,我基本没安装任何插件。主要是做一些简单的文件操作。

Mou

Markdown 编写工具。不过速度有点慢,我一般还是用 Emacs 编辑。

总结

这些是我本人目前都在使用的工具,不一定所有人都会喜欢它。正如本文标题所言,它们是给爱折腾的极客们准备的。同时也欢迎大家跟我分享 Mac 上面的好工具。