基本开发环境设置

小心你的中文输入法

在与计算机打交道的时候,中日韩国家的人因为输入的并非英文半角字符而造成的错误非常普遍,因为他们的输入法使用的是 CJKV “全角字符”,而非计算机编程语言可识别的“半角字符”(至于这两个词究竟是什么意思,来龙去脉是什么,自己 Google 一下就好)…… 因此新手有必要在使用编辑器书写代码的时候事先关闭非英文输入法。以后熟悉了之后,当然不再会因此浪费太多时间。

也需要因此做一些特定的配置。比如,应该在 System Preference > Language & Region > Preferred Languages 里将系统的首选语言设置成英文,这会在将来节省很多时间,

如果你使用中文输入法的话,那么,Spotlight 的快捷键与更换输入法的快捷键最好都重新设置一下,*总之就是不要占用 Control。请在 System Preferences > Keyboard > Shortcuts 里设置。

我的习惯是把 Spotlight 设置为 ⌥Space,把更换输入法设置为 ⌘Space;而 Spotlight 中,Show Finder Search Window 不使用快捷键;Input Sources 中,Select next source in Input menu 不使用快捷键。

命令行工具(Terminal/iTerm)的基本设置

用 Spotlight 呼出 Terminal,无论是谁,都得从熟悉它的使用开始。

打开 Terminal 之后,可以试试以下两个命令:

1
2
cd /
ls

现在需要知道的就是,每一行命令都必须做到每个字符都不能错,输入正确之后,按回车键 ⏎ 执行命令。

接下来要做的事情,按步骤完成,但你肯定完全不知道自己在做什么,照着做就行了(为了保证不出错,请逐次拷贝粘贴以下命令行,而后再按回车键执行):

(1)

1
cd~

(2)

1
curl -O https://raw.githubusercontent.com/donnemartin/dev-setup/master/.bash_profile

(3)

1
curl -O https://raw.githubusercontent.com/donnemartin/dev-setup/master/.bash_prompt

(4)

1
curl -O https://raw.githubusercontent.com/donnemartin/dev-setup/master/.aliases

全部完成之后,重启 Terminal(就是关掉退出之后,再重新打开)。刚才的命令完成了很多事情,只不过现在你搞不懂,你能看到的就是命令行提示变得花花绿绿了,各种颜色有不同的意义 —— 但以后再说。

接下来,要为 Terminal 换个皮肤 —— 天天要用的东西,不好看太难受了。我个人喜欢这两个:

去 Google 一下,找到你选的那个,使用说明都非常清楚的 —— 花点时间阅读就可以了。

要为所有与写代码相关的程序设置特定的字体,以便很容易识别出那些不小心输入的“全角字符”。我个人选择的是 Courier New 这个字体,因为这个字体的亚洲文字也挺好看,对我来说也更容易识别 —— 反正你要选择一个“等宽字体”。欧美的程序员偏爱 Menlo 之类的 —— 也许更多是因为他们没有亚洲输入法使用者的苦恼罢。

在 iMac 大屏幕上,我会把 Terminal 的字体设置为 20px …… 可问题是,你打开 Terminal 的 Preferences > Profiles > Solarized Dark > Text > Font,点 Change 按钮,跳出来的对话框里,你会发现你无法将字体设置为 20,下拉框里,18 之后就是 24 了…… 苹果的这个设计糊弄了很多人 —— 你这样:拖住对话框右下角横着拉,将对话框拉长到一定程度,你就发现那个字体选择框变成了“输入框”与“下拉选择框”的组合…… 你就可以在里面输入 20 了。

还有,Mac OSX 其实还有很多快捷键可以设置,其中一个比较重要的是 New Terminal at Folder,在System Preferences > Keyboard > Shortcuts > Services > Files and Folders 里可以找到。我把它设置成了 ⌃⌥⌘T,以后在 Finder 里,用鼠标选中某个文件夹(或称“目录”),然后按 ⌃⌥⌘T,就可以呼出 Terminal 并且将工作目录转至这个文件夹内…… 很方便。

好了,Terminal 的基本设置算是完成了。

另外,有三个 Mac OSX 系统自带的东西,工程师们会觉得不够用,进而造出更好的东西来替代,它们分别是:

我个人的选择是:

iTerm & TotalFinder & Alfred

建议你立刻硬选一组,别在这里浪费时间,往前走,要做的事情还很多很多。

下载 iTerm 之后,你要做的就是为它更换皮肤,更换字体,设置字体大小…… 其实你已经做过一遍了,和设置 Terminal 没什么太大差别。

命令行的使用

使用命令行工具,可以对系统下的文件(file)和目录(folder/dirctory/dir,这三个词在大多数情况下是一回事儿)进行罗列、创建、复制、移动、删除、修改等操作。

以下是一些最常用的命令(’#‘ 之后的文字是注释,输入命令的时候不能有它们):

1
2
3
4
5
6
7
8
9
10
ls #罗列当前目录下的内容
cd #更换工作目录
pwd #现实当前完整工作目录
touch #创建一个文件
mv #移动/更名文件或目录
rm #删除文件活目录
nano #使用 nano 编辑纯文本文件
open #打开一个文件,就好像你在 Finder 里双击那个文件图标一样
clear #清空屏幕
sudo #用管理员身份去执行一个命令

这些命令现在倒没必要马上深入研究,因为你早晚会不得不深入研究他们的。现在更必要的是学习 Terminal/iTerm2 的使用,有哪些快捷键等等…… 倒有个好去处,在 Github 上:

https://github.com/0nn0/terminal-mac-cheatsheet

还有个 Cheatsheet 值得打印出来,反复看,用的时候随时参考,直到所有视觉记忆全部变成肌肉记忆为止……

…… 或者说是,“直到把一般记忆变成脊椎记忆为止”,或者说是,“直到大脑皮层表面形成了专门的沟回为止”…… 反正都是一个意思:就是熟练到可以用潜意识即可完美完成的地步。

倒是 Cheatsheet 这个词应该记住,以后不管学什么,都到网上搜索一下 xxx cheatsheet,多翻几个,一定有收获。

注意:“通读”是做工程师必须的能力。你不一定要全部能够理解(对任何人来说,最初都不可能做到),但你必须对整个文档有一个整体的认识。这就好像读书的时候,你能做到虽然不能完全读懂,但确实能够完整读完 —— 之后再多读几遍么!古人说的是对的:读书千遍其义自见。还有就是,若是从一开始就没有“通读”的意识,后面不知道会吃多大的亏,而且吃了多少亏自己都完全不知道…… 这很可怕。

举个简单的例子罢:

很多工程师,用了好多年 Terminal,竟然都不知道竟然还有个快捷键能把光标前的两个词调换一下位置:按一下 esc 键,然后再按一下 t (通常标记为:⎋-t)…… 你想想看他们在过去的那么多年里,浪费了多少次键盘敲击?—— 虽然说起来、听起来没什么,可若是真的严肃起来去想,有什么比时间更重要的呢?浪费了大量的时间、浪费宝贵的生命,只不过是因为最初的时候没有养成“只要是重要的文档,必须通读至少一遍的习惯”而已。

所以说,“优秀是一种习惯”真的并不是空话,是放之四海皆准的道理。随后的过程中,我们会建立很多很多的好习惯,甚至这句话本身也会在各个地方重复 —— 生活质量就是这样一点一点提高的,放在哪个领域里其实都一样。

安装必要开发环境

XCode Command Line Tool

过去安装这个东西费劲死了,在需要翻山越岭的情况下下载两个多 G 的东西,唉…… Mac OSX EI Capitan 之后,终于可以在命令行工具(Terminal)下这样安装了:

1
xcode-select --install

安装 Homebrew

还是在命令行工具中拷贝粘贴以下代码,而后按回车键 ……

1
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

随后再次在命令行工具中拷贝粘贴以下代码,而后按回车键 ……

1
echo 'export PATH="/usr/local/bin:$PATH"' >> ~/.bash_profile

安装 Git

1
brew install git

安装 rvm 与 Ruby 2.3.1

注意,以下是三行命令,要分别输入,每行都要按接回车键(⏎)执行。以后为了书写方便,经常会把一系列命令放到一个代码块中……

1
2
3
\curl -sSL https://get.rvm.io | bash -s stable
rvm install 2.3.1
rvm use 2.3.1

rvm 是 Ruby 的版本管理工具,其作用是在系统中安装若干个不同版本的 Ruby,且不让它们之间发生冲突。你可以安装很多个版本的 Ruby,比如,刚刚安装了 2.3.1,随后你还可以安装 1.9.2

1
rvm install 1.9.2

需要使用 1.9.2 版本的 Ruby 的时候,就可以用这个命令:

1
rvm use 1.9.2

也可以随时用这个命令切换回 2.3.1

你也随时可以用这个命令查看自己都安装过哪些版本:

想要卸载哪个版本的 Ruby,你就用这样的命令:

1
rvm uninstall 1.9.2

下面要接着安装的 nvm,跟 rvm 一个原理,只不过 nvm 是 nodejs 的版本管理器。

安装 nvm 和 node 4.4.5

brew install nvm
nvm install 4.4.5
nvm use 4.4.5

为什么要安装 4.4.5 这个版本呢?nodejs 有两个版本,一个叫 LTS(Long Term Support,提供长期支持的稳定版),一个叫 Current(提供最新功能的当下版,通常也不够稳定,尚需改进)。很多软件系统都采用这种方式,比如著名的 Ubuntu …… 所以,当我们需要安装什么软件的时候,必须到官方网站上看一看,看看当前的稳定版本是什么,然后选择它就是了。将来你成了高手,啥都敢于、且确实有能力尝鲜的时候,就随便你喽。(更新:2017 年 3 月,LTS 版本已经升级到 6.10.0……)

如此这般,最基础的开发环境算是完成了 —— 理论上来讲,还有更多的事儿要做,不过,反正也一下子做不过来,就先到这里为止罢。

关于更详细的开发环境设置,请参阅这两个 Github 项目:

未来你肯定会反复去看的 —— 因为就是用得着。

安装 Atom

工程师们对编辑器有各种各样的偏好,vi/vim, emacs, TextMate, Sublimetext… 这些不过是免费的,还有很多收费的…… 问他们用哪个最好,基本上不可能有统一的答案。在这里,我们就不讨论不探究了,就直接开用一个 Github 出品的编辑器罢:Atom.

建议

永远不要参与编程语言之间或编辑器之间的比较争论 —— 在工程师世界里,那是永无宁日的争论,但价值并不大,事实上,一切争论的价值都不大:平息争论的能力才是更有价值的能力,若是不能平息争论,就不要参与争论了,因为参与无法平息的争论,本质上就是,耗费了时间耗费了生命却没有任何结果 —— 这是一个很重要的价值观,它会帮你节省无数未来的时间精力,它也有可能让你成为那个最终能够平息争论的人。

安装

打开 iTerm,用以下命令安装 Atom:

1
brew cask install atom

关于 brew cask 命令的说明,请参阅其官方网站:https://caskroom.github.io…… 学任何工具,第一件事情就是去把官方网站翻个遍,是必须的习惯。

当然,也可以使用传统的安装方法,到 https://atom.io 去下载 dmg 文件,打开之后,将应用程序拖到 Application 目录中去……

阅读 Atom 官方网站

Atom 的官方网站是,https://atom.io ,Documentation 栏目里,他们放了一个 Atom Flight Manual —— 这就是第一步要读的东西。

对于新手来说,至少应该先认真阅读第一章:

  • Chapter 1: Getting Started

Atom Cheatsheets

拿来任何一个软件工具,快速熟悉并掌握各种快捷键,是一个好习惯 —— 基本上就是耗费半小时而后用一辈子的事情。随便搜索一下 Atom Cheatsheet 就有一个 Cheatsheet 不错:

http://d2wy8f7a9ursnm.cloudfront.net/atom-editor-cheat-sheet.pdf

而 Atom 本身是个工具,所以它的 Cheatsheet 可以做得更为方便,有两个 Package 可以安装试一下:

熟悉到一定程度之后,就可以卸载它们了。

还有个程序值得试试:CheatSheet,无论什么时候,只要有它在,按住 ⌘ 一会儿,就会跳出一个面板,让你看到所有可用的快捷键。

1
brew cask install cheatsheet

安装 Dash

Dash 是个神奇的个人作品,现在几乎每一个在 Mac 上开发的人都会用到 Dash,估计你也不例外,装上吧,该付费就马上付费…… 想想真的不算贵。

总结

除了各种安装配置之外,你重点要看的是这俩文档:

  • 命令行文档 —— 先熟记那个 Cheatsheet……(另外,苹果有个官方的文档:Command Line Primer
  • Atom 官方教程的前两章。

肯定无法一下子全读懂,但“即便读不懂也要读完”,是一个特别神奇的能力,古人都知道“读书千遍其义自见” —— 说的就是这事儿。你必须积累这种能力,切记。

到此为止,你做了很多事情,翻了很多网页,敲了不少字符…… 可还不知道干了什么。别着急,耐心,耐心是唯一的法宝……