这篇帖子,记录一下这两天Mac下安装iTerm2,以及配置zsh + oh-my-zsh的一些步骤和坑
上个星期逛知乎的时候翻到一篇帖子:程序员如何优雅的使用Mac,看完之后对里面的iTerm2非常感兴趣,一通折腾。
安装iTerm2
非常简单,直接去官网下载最新的就好了。
安装zsh
zsh是一个可以替换bash的东西,拥有强大的功能,Mac就用万能的brew安装就好了
brew info zsh
安装完成后会生成zsh的配置文件,放在~/.zshrc。这个配置文件是zsh的入口,每次开启新的terminal的时候都会读取这里的配置。不过先不要着急改这个配置文件,待会它就会被omz替换掉了。
安装oh-my-zsh
oh-my-zsh是一套为方便配置zsh开发的开源框架,主要功能是增加了插件和主题。到目前为止,据官网所说,已经有180+个插件和140+个主题了。在官网下方可以方便的找到安装方法
通过Curl安装
$ curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
通过Wget安装
$ wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh
上面的任意一个命令会下载一个sh,然后运行它,运行完毕之后oh-my-zsh就安装完成了。omz 的安装会把之前提到的~/.zshrc备份为~/.zshrc.pre-oh-my-zsh,然后生成一个新的~/.zshrc替换掉原有的。打开这个新的看看里面的内容,有很大一部分注释,但是需要注意只有这几行:
export ZSH=/Users/zgr0629/.oh-my-zsh
ZSH_THEME="robbyrussell"
DEFAULT_USER="zgr0629"
plugins=(git brew node npm)
source $ZSH/oh-my-zsh.sh
第一行定义了一个ZSH的变量,记录了omz的根目录
ZSH_THEME就是omz的主题了
DEFAULT_USER这里填上你的用户名之后可以隐藏命令行前面的用户,洁癖患者必备。
plugins这里按照自己的需要,可以加载各种插件。
最后,source命令把上述配置好的变量一并带到omz的脚本里执行,从而达到配置zsh的目的。
主题!主题!主题!
agnoster主题
对,主题是一个非常重要的功能,谁希望整天对着黑白的shell做一整天。OMZ有非常多的主题,这个连接里有很多可以选,大部分都有截图,不过基本上都是用agnoster,配上强大的solarized配色方案,和powerline(提供git提示符),就会有下面的效果了。
使用这个agnoster主题很简单,先
vi ~/.zshrc
把里面的
ZSH_THEME="robbyrussell"
改为
ZSH_THEME="agnoster"
然后:wq,重新打开iTerm2就行了,当然,这个时候的效果还不会跟上图一样,因为还需要配置下面几个东东。
Powerline字体
如同上面看到的特殊三角或者是分支的图案,这个是patch到字体里面的,所以如果你要使用这种功能,必须把自己的字体给改了。你可以到这里下载别人已经patch好的字体,或者到这里下载程序,自己patch。得到字体文件之后直接双击,点击InstallFont安装到系统备用。比如我就是用的Mac原生终端自己Menlo的Powerline版本,Menlo字体看习惯了,没办法。
Solarized配色方案
这套配色方案看着不累,主页在这里,也可以从github上clone下来
$ git clone git://github.com/altercation/solarized.git
clone下来之后会看到很多文件夹,因为我们用的终端是iTerm2,所以找到solarized/iterm2-colors-solarized,里面有两个文件,一黑一白,双击就可以直接把这个Solarized的配色方案导入到iTerm2里面了。如果你需要其他的IDE或者终端也用这个配色方案,请找寻其他相应的文件夹。
iTerm2的设置
准备材料都完成了,最后需要配置终端了。打开iTerm2的Preference—Profile—点选你要修改的Profile—Colors—Load Persets。如果上面的配色方案导入成功,iTerm2就会出现这两个预设方案。
切换到Text,把Regular Font和Non-ASCII Font都改成刚才安装好的powerline字体。
最大的坑来了,一定记得把Text Rendering里的Drew bold text in bright colors给去掉,否则你ls的时候不论怎么设置都不会让列表着色。
其实不是因为没有着色,而是因为Solarized配色方案里面的Bright几个颜色就是这样的,可以翻回上面那张图看看。我整了一下午,终于发现不是设置原因而是配色方案本身有问题。。。
经过以上的设置,iTerm2终于被调教的顺眼一些了。
从此,作为程序员的你,被妹纸看到竟然用Mac编程的时候,也会显得更高端了,不是吗?咦,我忘了,因为首先。。。