Mac下终端配置Zsh(item2 + oh-my-zsh + solarized配色)

0.645字数 1567阅读 882

前言

一直羡慕别人拥有令人赏心悦目的终端,于是最近抽空查阅了一些前人的资料,加上自身的实践,配置了一下zsh的终端环境,使其提供一些更加人性化的功能:

当前的zsh终端拥有语法高亮,命令行tab补全,自动提示符,显示Git仓库状态等功能。

下面是最终完成的效果图:

image

闲话少说,下面正式开动安装和配置。

安装步骤

iTerm2

下载

首先我们下载的 iTem2 这个软件,比Mac自带的终端更加强大。直接官网 http://iterm2.com/ 下载并安装即可。

配置

  1. 安装完成之后,打开iTem2 ,将iTem2 设置为默认终端:(菜单栏)iTerm2 -> Make iTerm2 Default Term。

    image

  2. 然后打开偏好设置preference,选中Keys,勾选Hotkey下的Show/hide iTerm2 with a system-wide hotkey,将热键设置为command+. ,这样你就可以通过ctrl+alt+T 的全局热键来打开或关闭iTerm2窗口,非常方便。


    image

oh-my-zsh

安装

打开iTerm2,输入下面指令安装oh-my-zsh:

curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh 

Powerline

安装

如果不安装Powerline字体库,上面的主题会出现乱码。

在官网有教程,我们只需要执行官网第一条安装指令就行

如果你的终端能够正常执行pip指令,那么直接执行下面的指令可以完成安装:

sudo pip install powerline-status

如果没有,则先执行安装pip指令

sudo easy_install pip

注意:如果执行pip install powerline-status发生如下的报错:

...
OSError: [Errno 1] Operation not permitted: '/System/Library/Frameworks/Python.framework/Versions/2.7/share'

其实权限问题… OSError: [Errno 1] Operation not permitted , 各种的root都不可以,想到了一个粗暴的方式,直接针对share进行chmod的授权。 结果… 提示root也是没有权限操作系统的目录。 我突然发觉肯定是新版的osx有了某种机制制止我们直接的修改/System文档数据。

现在的解决办法是取消SIP机制,具体做法是:

重启电脑,按住Command+R(直到出现苹果标志)进入Recovery Mode(恢复模式)
左上角菜单里找到实用工具 -> 终端,执行如下指令,重启Mac即可。

$ csrutil disable

我们现在再看看sip的状态, 这样就不会提示无法写入的权限提示了.

$ csrutil status
System Integrity Protection status: disabled.

总结:如果在mac下碰到OSError: [Errno 1] Operation not permitted:的问题,就算用sudo 也无法解决,那肯定是sip在作怪了.如果想重新启动SIP机制重复上述步骤改用csrutil enable即可.

字体库

安装

git clone https://github.com/powerline/fonts.git --depth=1
cd fonts 
./install.sh
cd ..
rm -rf fonts

配置主题

  1. 打开zsh配置文件:
vim ~/.zshrc
  1. 利用vim查找快捷键/ZSH_THEME找到ZSH_THEME,将其值替换为agnoster.
ZSH_THEME="agnoster"(agnoster即为要设置的主题)
  1. 保存后执行下面命令
chsh -s /bin/zsh

现在打开iTem2 会有乱码,还很丑, 别着急 ,我们去设置字体和配色。

设置字体和颜色

  1. 打开iTerm2菜单栏,找到Preferences..选项:
image
  1. 在profile选项卡下,选择text的tab页,将font的collecton选择为全部,font family选择为Roboto Mono Light for powerline,typeface选择为轻度,size选择为16。
image
  1. Coloers选择Solarized Dark:
image

配置完成后关闭重启iTem2 。到现在为止,iterm2已经可以使用,起码是能看的了 ,接下来需要再美化一下。

增加指令高亮效果

简介

指令高亮效果作用是当用户输入正确命令时指令会绿色高亮,错误时命令红色高亮。例如,当输入正确的指令pwd时,指令显示为绿色,当只输入pw时,当前系统上没有该指令,则判断指令有误或不完整,显示为红色。

image

下载插件

首先,我们需要下载zsh-syntax-highlighting插件:

  1. cd到.zshrc所在目录,执行指令将工程克隆到当前目录:
cd ~
git clone git://github.com/zsh-users/zsh-syntax-highlighting.git

配置插件

  1. 打开.zshrc文件,在最后添加下面内容
vim ~/.zshrc
source ~/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

备注:如果希望自定义zsh-syntax-highlighting文件的目录,例如文件的完整路径是/user/GeekerLou/Public/zsh-syntax-highlighting,那么就需要将上述source语句修改为source ~/user/GeekerLou/Public/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

  1. 切换目录
cd ~/.oh-my-zsh/custom/plugins
  1. 再次打开.zshrc文件,查找到plugins字段。
vim ~/.zshrc
/plugins
  1. 在后面添加zsh-syntax-highlighting插件名称。(zsh默认支持git,所以安装时自带安装了git插件,所以这里首次编辑时发现已经存在有git插件了)
plugins=(zsh-syntax-highlighting git)

修改完成后,保存文件。

增加自动补全提示

简介

zsh 的命令补全功能非常强大,可以补齐路径,补齐命令,补齐参数等。(请问你记住 tar 的所有参数了吗,只要 tar -加 tab 键,再也不用 rtfm 了)

image

按下 tab 键显示出所有待选项后,再按一次 tab 键,即进入选择模式,进入选择模式后,按 tab 切向下一个选项,按 shift+tab 键切向上一个选项,ctrl+f/b/n/p 可以向前后左右切换。

image

下载插件

首先,我们需要下载zsh-autosuggestions插件:

cd ~/.oh-my-zsh/custom/plugins
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

配置插件

  1. 再次打开.zshrc文件,查找到plugins字段:
vim ~/.zshrc
  1. 添加zsh-autosuggertions,修改plugins字段为如下内容:
plugins=(zsh-autosuggertions zsh-syntax-highlightin git)

保存修改后退出。

  1. 切换目录,利用vim打开配置文件zsh-autosuggestions.zsh:
cd~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
vim zsh-autosuggestions.zsh
  1. 修改提示内容显示大小
    查找到ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE,将其值由默认值'fg=8'修改为'fg=10'
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=10'

保存修改后退出。

TODO

后期考虑编写一个一键安装的执行脚本,一是方便小白用户,二是提升配置效率。

参考资料:

  1. 高逼格终端iTerm2+Oh-My-Zsh自动连接远程服务器 解决rz/sz卡死 【亲测-完美】
  2. iTerm 2 && Oh My Zsh【DIY教程——亲身体验过程】
  3. Mac下终端配置(item2 + oh-my-zsh + solarized配色方案)
  4. 解决mac osx下pip安装ipython权限的问题

推荐阅读更多精彩内容