Oh My Mac!

前言

我会想念 Windows 上面的一切,但我选择了 Mac。

从某种程度上讲,我并不是讨厌 Windows。尽管我是一个伪装成、*nix 程序员的技术菜鸟。

我还记得高一时候家里给我买的第一台二手电脑,那是一台烂到令人发指的破电脑,你可能见过那种俗称大屁股的电脑,512M 内存,64M 显存。我就在那一台机器上打了仙剑三通关和仙剑四的青鸾峰到寿阳城阶段,千佛寺时候家里电脑实在是烂到令人发指,于是电脑就报废了。后来,家里面换了一台电脑,128 显存,内存 2g 的联想杨天电脑。我就在这一台机器上打了仙剑四的寿阳城之后的剧情。

正如你可以看出来的,我并不讨厌 Windows,甚至某种程度上,我非常喜欢 Windows,正是盗版时代风靡全球的 Windows 才给了我电脑的启蒙。

喜欢 Windows 的部分原因也是因为穷,只能用盗版(我当年以为是免费,后来才知道这叫做盗版)。就像当我知道仙剑四团队因为我这样只知道免费的盗版人群解散了以后,心痛不已。自此以后,如果经济上可以,我一定会买正版。倒也不是为了买给别人看,这只是代表我对软件开发者的最崇高的敬意。也是弥补我因为无知犯下的错误的愧疚感。

Windows 对我来说就是启蒙老师。

但 Windows 的种种环境配置,日常使用和我inux 的技术栈完全不兼容了。从 XP 到 Vista 再到 7 再到 8 再到 10,这种情况依旧没有发生什么本质的变化。这样的我不得不选择模拟、nix 工具,虚拟机或者双系统。但,模拟的nix 实在太难用,虚拟机里面的系统用起来根本操作根本就不丝滑,双系统一会切换到 Win,一会切换到 Ubuntu 这种情况简直让我非常的抓狂。nux 的环境又不能不要,可 Win 的桌面软件实在是难以割舍。

于是,一个切换到 OSX 的想法在我的脑海中不断的浮现。但是正如你所知道的一个很现实的情况:

没钱,也不愿意给父母添麻烦。

幽灵,一个想买 MacBook Pro 的想法,像幽灵一样,在脑海中不断的浮现。

直到前几天才攒够足够的钱买了一台二手 mbp 改装一下 SSD。作为丐帮 Mac 第一新人,进入了 MAC 的世界里。

对,我受够了 Windows 里面各种奇葩的问题,也受够了 Ubuntu 等 Linux 系统的糟糕的桌面体验。

对于一个不研究。net 的人来说,Windows 完成了他伟大的启蒙任务。也是时候与你告别了。

只是人总要和以前的一些人和事情不断的做告别,不是吗?

以前看过很多比较浅显的讲解,正是那些讲解,让我逐渐入了门,然后我就不得不与他们做告别。

他们完成了他们伟大的任务,他们的伟大之处永远都在为新手敞开大门,所以,我们成长之后不应该去鄙视那些给你带来进步的事物,而是礼貌的挥挥手向他们告别。

开始迁移

那么,依照我丰富的 Windows 使用经验来说,我需要解决的问题就是把原有的 Windows 和 Ubuntu 上的东西搬运到我的新电脑上。

使用电脑 = 软件 + 操作
学会使用电脑 = 描述问题 + 搜索引擎 + 笔记

0. 自带的软件各种 Hack

其实,自带的软件往往有不可忽略的强大之处。比如,Windows 世界里面的 Win+R 按键。

目前来说,发现苹果上面自带软件不错的地方如下:

  • 自带软件,苹果的一些应用,itunes,iphoto,isg 等等。使用这些软件简直就是易如反掌。没什么好说,不错的软件就是 spotlight 了,这个软件非常的强大。可以说是进阶版本的 Windows 上面的搜索 +Win+R。但是然并卵,我们用 alfred2 这个神一样的东西,逐渐就把这基本的软件废弃了。我使用的也就是自带的 finder。
  • Mac 上的软件的快捷键可以通过一个叫做 cheatsheet 的的软件进行查看,安装好这个软件,打开一个软件,然后长按 cmd 按键。

0.0 系统设置调整

从 Win 过来人在一些细节操作上与 Mac 的设计有一些不同。这些可以在系统里面进行设置。

比如, 鼠标滚轮调整

preference - mouse - 取消勾选:scroll direction :natural

0.1 文件的操作

windows 里面管理文件的东西叫做 explorer.
mac 里面叫做 finder.
二者,图形操作上大致相同。但是结合快捷键的操作就不同了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# cmd 为 command 按键,通常情况下为所有桌面程序通用性的快捷键。
# ctrl ,通常情况下是针对程序的功能进行加强,并且此功能往往是非 cmd 类(窗口操作,选择,复制粘贴等等)操作。
# shift 按键通常用于加强操作。一般会让操作更进一步 or 相反操作。
cmd+tab =~ alt+tab 程序之间的切换
cmd+` 应用内窗口切换
cmd+h 窗口 hide
cmd+m 窗口 minimize
cmd+n 新建窗口
cmd+o 打开
cmd+s 保存
cmd+shift+s 另存为
cmd+p 打印 print
cmd+w 关闭
cmd+q quit
cmd+a select all
cmd+i show info
cmd+n create a new folder
cmd+f search
cmd+c copy
cmd+v paste
cmd+delete 删除选中文件
cmd+shift+delete 清空回收站
cmd+= 放大
cmd+- 缩小
cmd+t 新建选项卡
cmd+r 刷新
cmd+shift+3 截取整个屏幕
cmd+shift+4 截取选择区域
cmd+shift+4+SPACE 截取选择窗口
cmd+ 鼠标点击 -> 选中不连续文件
control+ 鼠标点击 -> 相当于 win 中右键点击
fn+left home
fn+right end
fn+up pageup
fn+down pagedown

0.2 Trackpad

到 trackpad 中设置对应鼠标手势

  1. 点击

单指点击 - 单击
单指滑动 - 滑动鼠标光标
双指点击 - 相当于 Windows 的鼠标右键
三指点击 - 划词查找

  1. 滑动与缩放

双指上下滑动 - 滚动
双指缩放 - 与 Android 上图片缩放一致
双指双击 - 只能缩放
双指旋转 - 旋转
双指左右滑动 - 应用内切换网页
双指头从右往左
三指头左右滑动 - 全屏幕 App 切换
大拇指和食中无名缩放 - launchpad

1. 日常软件

1.1 一些满足日常生活的软件

Alfred - 让你的 spotlight 更上一层楼,程序打开 / 切换、文件搜索、互联网搜索、与其他软件交互的利器。
weixin,qq - 这是必须的。
CleanMyMac - 系统清理软件。
欧陆词典 - 国产词典领域最牛。别说有道词典了好伐。
calibre - 电子书必备,下载免费经济学人。
Wiznote - 为知笔记,实在是国产良心之作。可惜,Mac 上面的功能比较少。
PS,Sketch - P 图必备吧?
Safari,Chrome+ 大量的插件 - 不多说,Chrome 简直就是我的第二操作系统。那犀利的插件,Get 到痛点的功能,用起来纵享丝滑一般的流畅,都深深的迷住了我。除了吃内存,其他都好。
PDF reader,ibook - 文档查看必备。
MS OFFICE,Work 套件:包括 pages, numbers, keynote. 其实 Windows 的生产力之说大抵也就是 Office 系列 VS 系列了,虽然我不喜欢 Office,但是不得不说,Excel 做的真的是世界级的牛。其他,PPT,Word 嘛?反正我不喜欢,奈何别人都用这个。我只好在电脑上安装一份了。
虚拟机:parallels desktop
迅雷 本来挺简洁的,最近出来一个商城。哦,看来距离我卸载他的日期已经不多了。
管理 Android 手机:airdroid 用于管理我的坚果手机。
写作与编码,Sublime+ 插件,MacVim+ 插件
邮件:airmail 好简洁,好强大,和 Gmail 简直就是无缝对接嘛。
思维导图:xmind - 一直在用。依赖 Java 环境。
解压缩:BetterZip 7z 解压缩 我比较喜欢 7z
你懂的:shadowsocks 不多说了,看小粉红出墙征战四方寸草不生的优良工具。
其他系统自带软件

2. 开发环境

ide 类:xcode 和 xcode-cli 工具(用于安装 homebrew 和 homebrew cask)

2.1 homebrew

少什么?homebrew 一下就好。

如果你想更深一步,那就使用 homebrew cask

2.2 sublime text

sublime text 作为我很长一段时间的主力编辑器,优点如下:

  • 快,打开文件比较快。当然,比 notepad++ 要慢
  • 多光标编辑。
  • 强大的插件库

对,加上第三点,sublime 成为了编辑器世界的女神级别人物。哎,想起我对别人大力推荐这个编辑器别人还是一如既往的使用 npp,实在是糟心。

插件库里面的主题我比较喜欢 sodarized
喜欢的功能性插件为 pretty 系插件,比如,对 json,html,js.css 进行一键格式化。哦,简直帅爆了。
当然其他能留下深刻印象的就是 lint 系列插件和部分对编辑器的侧边栏,右键菜单,以及对应语言的库进行补充的插件了。

现在继续使用这一款软件的原因也是如此。

2.3 macvim + spf13-vim

我对计算机上古时代的前辈们总是有很崇高的敬意。这在我是用来了 Vim 以后才逐渐有这种想法。

对,Vim 真的很神奇。但是 Vim 是我见过的为数不多的使用难度超越了我认识到的所有软件的软件。之前排名在 top 1 的应该是 Windows 上面的 Totalcmd。

出于 Vim 及其陡峭的学习路径,我认为 Vim 本身适合可以盲打,并且是键盘流爱好者的情况下再学习。否则,学习效率会极其的低下。为什么我知道?一把辛酸泪。

在这个时代,最宝贵的就是有用的信息,对,我遇到了 SPF13Vim 这个已经配置好的 VIm 版本。并且从中学习到了一些奇技淫巧。

现在基本上是离不开 Vim 了。甚至面对没有 Vim 类型操作的编辑器或者浏览器的时候,简直无法忍受。

尽管现在我还是一个 Vim 菜鸟。有机会我会整理好自己的 Vim 配置,放在 github 上面。

Vim 使用一定要改按键!!!

CapsLock 按键没有什么用,改成 Escape 按键或者改成 Ctrl 按键,推荐改成 Ctrl,因为 ESC 除了 Vim 里面使用的比较少,但是使用 Ctrl 的场景就比较多了(Vim 中 ESC 可以使用 Ctrl+\『代替,而且不需要使用第三方工具),这样让小拇指很舒服。

2.4 Chrome

由于一些众所周知,或者你不知道我也懒得告诉你的原因。我们比较信赖国外的好的产品。

Chrome 就是这样的产品。

我以前的文章也写过,只是由于硬盘发生了一次数据丢失事件,关于 chrome 的笔记都已经丢掉了,我就再也没有写过 chrome 的那些牛的要死的功能。

但是我还是要推荐一些我喜欢的插件。

adblock - 去广告标准配置了吧
autoPatchWork - 自动拼接下一页到本页
capture,explain and send screenshots - 截图
cssviewer - 查看 css 的工具
Dream Afar New Tab - 美化新标签页面必备
json editor - 格式化 json 专用
isometric contribution - 其实也就是美化 github 上面提交的工具
One Click extensions Manager - 由于 chrome 的标签数量惊人,所以有的时候为了提升速度还是禁用掉一些比较好。
Pocket - read it later PS:虽然我自从用了为知笔记以后就不用 pocket 了。但 pocket 真的值得一用
Vimium - 快速浏览网页的神器
Web Timer - 记录花在每个站点的时间。
Wiznote WebCliper - Pocket 的替代品
Octotree - 如果你玩 github 没装这个插件,是时候使用这个插件然后感叹时光一去永不回了。
SwitchyOMega - 你懂得

2.5 Lang 环境

Lang 环境,顾名思义,就是各种语言的环境。

我们程序员需要懂和计算机交流的本事,所以,我们需要学很多的语言。但,问题也就因此而来。选择什么样的软件来管理不同的软件环境呢?如果是 Ruby 环境,我们又怎么配置 Ruby 不同版本呢?

计算机世界的铁律:

只要有树叶飞舞的地方,火就会燃烧

额,等等,说串场了

只要有痛点,就有解决痛点的工具。

Java 这个需要切换版本的要求比较低。无所谓。何况,已经很久没有写 Java 了。 我一般情况下使用的是 Java8
rvm ruby 社区的人都喜欢使用最新最潮的技术,所以,切换版本这种事情必须要做,rbenv 和 rvm 都是非常有用 ruby 版本管理器。我喜欢 rvm。
nvm nodejs 比较火,虽然我对 nodejs 并不是很感冒,但是我不得不承认,有些人写出来的 nodejs 工具实在是方便的要死。比如,gitbook-cli,hexo-cli,二者都是记录自己的笔记的好东西。
Lang 对于 Python,我选择了 anaconda,anaconda 为特殊的 Python 分发包。里面的库比较全面,不需要我特地为一个包找教程来安装。

2.6 终端

首先,我们对终端的认识可能还停留在 unix 机器或者 ubuntu 桌面进不了的时代。Mac 上面 iterm2 作为一个终端模拟器,则是做到了同类中的最强者。好用到想让人哭。

shell 一般情况下使用的 bash,但是那是对运维人员来说的,我们开发者使用的是 zsh。配置 zsh 的文件使用是 OhMyZsh.

好用到想哭。

结束语

从我的角度来看 Win 和 Mac 的好于不好

Win 的好在于系统优良的兼容性,以及入门就可以上手的强大的操作性。由于出自于什么都爱做的微软公司,从整体来说,VS,.NET, 游戏性,兼容性,性能,新手上手速度来说,都是遥遥领先 Mac 的。
也可惜了,微软的战线实在是拉的太长,什么都想做,什么都想垄断。于是,与之服务密切相关的公司也就受到了 MS 的牵制。这对大公司来说,几乎是不能够忍受的行为。于是硅谷的公司使用微软服务的也就接近 5%(可能有误差)。并且,糟糕的终端环境(DOS)和无法与、nux 世界的脚本友好相处使得系统的可定制性和进阶操作性大大降低。
虽然有 Everything,TotalCMD,AHK 这种神级辅助工具可以满足定制要求。但由于过高的学习成本(AHK 语言真的很混乱啊,TC 实在是太难用了)但也无法满足、
nux 程序员的要求。这就是我不得不切换到 Mac 上面的理由。

Mac 的好在于终端和美观的图形的结合。也就是开发基于、*nux 应用的非常方便以及非常容易与脚本文件配合出强大的组合技能,反观 Win 上,则这种组合技能则在环境配置上和操作流畅度上差了很多。
缺点也是相当容易看出来的 – 娱乐项目实在是少的要死。再者说,我们也不需要娱乐性那么强的软件,不是么?

哦,终于集齐了 PC,Linux,Mac 的配置文章

关于 Ubuntu 我的回答

关于 Win10 我的回答

就酱紫。

更新

2016-02-03 : 更新 Trackpad 部分,修改部分文字
2016-02-07 : 重写快捷键部分,将快捷键按照程序划分。
2017-04-01 : 重写碎碎念部分。
2017-05-01 : 已经更换最新款 Macbook Pro, 算是实现了一个小目标吧。