前言
一直羡慕别人拥有令人赏心悦目的终端,于是最近抽空查阅了一些前人的资料,加上自身的实践,配置了一下zsh的终端环境,使其提供一些更加人性化的功能:
当前的zsh终端拥有语法高亮,命令行tab补全,自动提示符,显示Git仓库状态等功能。
下面是最终完成的效果图:
闲话少说,下面正式开动安装和配置。
安装步骤
iTerm2
下载
首先我们下载的 iTem2
这个软件,比Mac自带的终端更加强大。直接官网 http://iterm2.com/ 下载并安装即可。
配置
-
安装完成之后,打开
iTem2
,将iTem2
设置为默认终端:(菜单栏)iTerm2 -> Make iTerm2 Default Term。
-
然后打开偏好设置preference,选中Keys,勾选Hotkey下的Show/hide iTerm2 with a system-wide hotkey,将热键设置为command+. ,这样你就可以通过ctrl+alt+T 的全局热键来打开或关闭iTerm2窗口,非常方便。
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指令,那么直接执行下面的指令可以完成安装:
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
配置主题
- 打开zsh配置文件:
vim ~/.zshrc
- 利用vim查找快捷键
/ZSH_THEME
找到ZSH_THEME
,将其值替换为agnoster
.
ZSH_THEME="agnoster"(agnoster即为要设置的主题)
- 保存后执行下面命令
chsh -s /bin/zsh
现在打开iTem2
会有乱码,还很丑, 别着急 ,我们去设置字体和配色。
设置字体和颜色
- 打开iTerm2菜单栏,找到Preferences..选项:
- 在profile选项卡下,选择text的tab页,将font的collecton选择为全部,font family选择为Roboto Mono Light for powerline,typeface选择为轻度,size选择为16。
- Coloers选择Solarized Dark:
配置完成后关闭重启iTem2
。到现在为止,iterm2已经可以使用,起码是能看的了 ,接下来需要再美化一下。
增加指令高亮效果
简介
指令高亮效果作用是当用户输入正确命令时指令会绿色高亮,错误时命令红色高亮。例如,当输入正确的指令pwd
时,指令显示为绿色,当只输入pw
时,当前系统上没有该指令,则判断指令有误或不完整,显示为红色。
下载插件
首先,我们需要下载zsh-syntax-highlighting插件:
- cd到.zshrc所在目录,执行指令将工程克隆到当前目录:
cd ~
git clone git://github.com/zsh-users/zsh-syntax-highlighting.git
配置插件
- 打开.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
。
- 切换目录
cd ~/.oh-my-zsh/custom/plugins
- 再次打开.zshrc文件,查找到
plugins
字段。
vim ~/.zshrc
/plugins
- 在后面添加zsh-syntax-highlighting插件名称。(zsh默认支持git,所以安装时自带安装了git插件,所以这里首次编辑时发现已经存在有git插件了)
plugins=(zsh-syntax-highlighting git)
修改完成后,保存文件。
增加自动补全提示
简介
zsh 的命令补全功能非常强大,可以补齐路径,补齐命令,补齐参数等。(请问你记住 tar 的所有参数了吗,只要 tar -加 tab 键,再也不用 rtfm 了)
按下 tab 键显示出所有待选项后,再按一次 tab 键,即进入选择模式,进入选择模式后,按 tab 切向下一个选项,按 shift+tab 键切向上一个选项,ctrl+f/b/n/p 可以向前后左右切换。
下载插件
首先,我们需要下载zsh-autosuggestions插件:
cd ~/.oh-my-zsh/custom/plugins
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
配置插件
- 再次打开.zshrc文件,查找到
plugins
字段:
vim ~/.zshrc
- 添加
zsh-autosuggertions
,修改plugins
字段为如下内容:
plugins=(zsh-autosuggertions zsh-syntax-highlightin git)
保存修改后退出。
- 切换目录,利用vim打开配置文件zsh-autosuggestions.zsh:
cd~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
vim zsh-autosuggestions.zsh
- 修改提示内容显示大小
查找到ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE
,将其值由默认值'fg=8'
修改为'fg=10'
。
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=10'
保存修改后退出。
TODO
后期考虑编写一个一键安装的执行脚本,一是方便小白用户,二是提升配置效率。
参考资料:
- 高逼格终端iTerm2+Oh-My-Zsh自动连接远程服务器 解决rz/sz卡死 【亲测-完美】
- iTerm 2 && Oh My Zsh【DIY教程——亲身体验过程】
- Mac下终端配置(item2 + oh-my-zsh + solarized配色方案)
- 解决mac osx下pip安装ipython权限的问题