MacOS X下iTerm2安装配置powerline

iTerm2是在Mac下非常好用的一个终端工具,powerline是终端下的一款状态栏工具。

我安装好的效果如下:

powerline效果

进入正题,powerline需要python支持,查看系统是否安装了python,MacOS X应该是自带了python2的,如果没有安装则可以去官网下载一个安装,或者直接使用brew安装。

1
2
$ python -V
Python 2.7.10

参照官方安装文档,安装powerline很简单,只需要一条命令pip install powerline-status,这里需要有pip支持,如果没有的请使用sudo easy_install pip安装pip,然后安装powerline。但是可能会发现报错,无法安装:

1
2
3
4
5
copying scripts/powerline -> /System/Library/Frameworks/Python.framework/Versions/2.7/bin
error: [Errno 1] Operation not permitted: u'/System/Library/Frameworks/Python.framework/Versions/2.7/bin/powerline'

----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/private/var/folders/lq/vhfk78091v50dwmpfxwm25km0000gn/T/pip-build-d0dFuY/powerline-status/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /var/folders/lq/vhfk78091v50dwmpfxwm25km0000gn/T/pip-W24elq-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/lq/vhfk78091v50dwmpfxwm25km0000gn/T/pip-build-d0dFuY/powerline-status/

就算用sudo 也无法解决,这是因为新系统有个叫SIP的机制(System Integrity Protection),默认情况下系统启用SIP系统完整性保护机制,无论是对于硬盘还是运行时的进程限制对系统目录的写操作。如果需要继续安装,则需要停止SIP机制,具体做法是:

重启电脑,按住Command+R(直到出现苹果标志)进入Recovery Mode(恢复模式)
左上角菜单里找到实用工具 -> 终端
输入csrutil disable回车
重启Mac即可

如果想重新启动SIP机制重复上述步骤改用csrutil enable即可

当然这样显得略繁琐了些,而且可能会不安全,还有另一种方式,基于用户的权限来安装:

1
➜ ~  pip install powerline-status --user -U

安装完成后打开~/.zshrc,在最后面加上一行:

1
. /Users/[用户名]/Library/Python/2.7/lib/python/site-packages/powerline/bindings/zsh/powerline.zsh

注意: . 后面有个空格。

接下来打开iTerm,如果报错:

1
2
/Users/[用户名]/Library/Python/2.7/lib/python/site-packages/powerline/bindings/zsh/powerline.zsh:210: no such file or directory: /Users/[用户名]/Library/Python/2.7/lib/python/site-packages/scripts/powerline-config
/Users/[用户名]/Library/Python/2.7/lib/python/site-packages/powerline/bindings/zsh/powerline.zsh:214: no such file or directory: /Users/[用户名]/Library/Python/2.7/lib/python/site-packages/scripts/powerline-config

则需要将/Users/[用户名]/Library/Python/2.7/bin加入到PATH中,然后打开iTerm2,powerline应该可以正常使用了。剩下的工作就是自定义了。