Mac配置iTerm2+Zsh+OhMyZsh终端环境

1.楔子

前几天在Mac自带终端上配置好Solarized配色之后看起来终于顺眼多了,好看是好看了,但是逼格还是不够高,于是又折腾起iTerm 2iTerm 2相比自带的Terminal应用,有太多优点了:可以设置主题,支持画面分割,各种使用的快捷键,以及快速唤出等等等等。配合oh-my-zsh使用,简直优雅到爆炸!

2.最终实现效果

照例先看最终效果,界面是不是比原生终端又高了一个档次,支持命令高亮(正确绿色,错误红色)、目录快捷跳转、历史命令自动补全。其实好用的插件还有很多,暂时就只配置了这3个。


实现效果

3.安装配置步骤

3.1.安装iTerm2

访问iTerm 2官网,下载DMG文件安装即可。

3.2.安装oh-my-zsh

打开iTerm输入以下指令安装oh-my-zsh

1
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

以上命令会自动安装oh-my-zsh,安装完成后按提示输入密码会将默认shellbash替换为zsh。如果没有自动提示将默认shellbash替换为zsh,执行以下命令可改为zsh

1
chsh -s /bin/zsh

有关shellbashzsh的关系和区别等,可以参考《终极 Shell——ZSH》

3.3.配置agnoster主题

由于agnoster主题依赖于Powerline字体和Solarized配色,所以接下来先安装Powerline字体和Solarized配色方案。

3.3.1.安装Powerline

似乎不安装Powerline,直接安装Powerline字体也可以,博主没有尝试,请各位自行实验。

这里使用pip来安装Powerline,输入以下指令安装Powerline

1
pip install powerline-status --user

如果提示没有安装pip,则先执行以下指令安装pip

1
sudo easy_install pip

3.3.2.安装配置Powerline字体

执行以下命令下载Powerline字体:

1
git clone https://github.com/powerline/fonts.git

在iTerm2中cd进fonts目录,然后执行以下命令

1
./install.sh

完成后如下图所示,进入iTerm2的偏好设置,选择Profile中的Text选项,点击Change Font选择Powerline字体,我这里选择的12pt Meslo LG S DZ for Powerline,并把Anti-aliased勾选上。(注意:较早版本的iTerm2字体这里可能分为Regular FontNon-ASCII Font,如果是这样把这两处都选择为Powerline字体即可。)


选择偏好设置

3.3.3.配置配色方案

首先到Solarized官网下载并解压Solarized,然后进入solarized/iterm2-colors-solarized文件夹,双击Solarized Dark.itermcolorsSolarized Light.itermcolors即可将配置文件导入iTerm2中。
如下图所示,再次进入iTerm2偏好设置,在profile-Colors中点击Color Presets...选择Solarized DarkSolarized Light即可。


配置Solarized配色

3.3.4.使用agnoster主题

安装oh-my-zsh的时候已经默认下载了全部主题,接下来只需要配置一下就可以了。输入以下命令编辑.zshrc文件:

1
vi ~./.zshrc

ZSH_THEME后面的字段改为agnoster,保存退出后重启iTerm2即可。
注意这里改了主题之后如果没有效果,很有可能是因为默认shell还没有改为zsh,请按以下命令改为zsh后重启iTerm2即可。

1
chsh -s /bin/zsh

3.4.常用插件安装

3.4.1.一键直达目录——autojump

命令行中切换目录是最常用的操作,安装autojump后,只要正常cd过目录,下次只要记住目录名字,就可以直接进去,支持模糊匹配。
首先执行以下命令安装autojump

1
brew install autojump

如果没有安装Homebrew请先执行以下命令安装Homebrew

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

安装完成后将如下语句添加到~/.zshrc中:

1
[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh

保存退出后执行以下命令:

1
source ~/.zshrc

此时应该就可以正常使用j指令来进行目录跳转了。详细用法请参考wting/autojump

3.4.2.指令高亮效果——zsh-syntax-highlighting

该插件的作用是当用户输入正确命令时指令会绿色高亮,错误时命令红色高亮。
执行以下命令安装zsh-syntax-highlighting

1
brew install zsh-syntax-highlighting

安装完成后将以下语句添加到~/.zshrc的尾部:

1
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

保存退出后执行以下命令:

1
source ~/.zshrc

此时应该输入命令应该就会高亮显示了。更多zsh-syntax-highlighting相关内容请参考zsh-users/zsh-syntax-highlighting

3.4.3.历史操作记录自动补全——zsh-autosuggestions

该插件的作用是按方向右键自动补全历史命令。
执行以下命令安装zsh-autosuggestions

1
git clone git://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions

下载完成后编辑~/.zshrc,将zsh-autosuggestions添加到plugins项后的括号中,注意要与其他项以空格隔开。更多zsh-autosuggestions相关内容请参考zsh-users/zsh-autosuggestions

Q&A

  1. iTerm 2每次退出时都会弹窗提示,进入偏好设置中的General-Closing,将Confirm "Quit iTerm2(⌘Q)" command取消勾选就可以关闭提示了;
  2. 安装Powelineshell默认使用zsh后,Mac原生Terminal.app可能会出现字体显示不全的情况,可能会显示成方块,此时按iTerm设置Powerline字体的相似方法,进入Terminal的偏好设置将字体设置为Powerline字体后重启即可。
  3. 按以上步骤全部设置好后,如果之前没有给Vim配置Solarized配色,在iTerm中使用Vim时会出现颜色不和谐的问题,参考我上篇文章《在Mac OS终端中使用Solarized配色方案》Vim配置Solarized配色即可。

参考资料

更多iTerm使用技巧可以参考:《你应该知道的 iTerm2 使用方法–MAC终端工具》

坚持原创技术分享,您的支持将鼓励我继续创作!