Mac OS X 工具技巧:一文搞定个性化命令行窗口(iTerm2 + zsh + oh-my-zsh 配置Powerline风格)

本不想写这篇文章的,因为在Linux下已经配置过很多次,想着mac应该找篇文章一次就搞定了,结果还是踩坑,看了很多文章,不是某一点没不清楚,就是截图有问题或者命令有问题,官网又难得找等等…花了3个多小时才搞定,所以,还是来总结一篇文章就能够搞定的教程。

为什么要用zsh?用了这么多年的bash,不能说bash不好,不过当我用了zsh后发现,什么叫更好用。

配置过程稍微有点繁琐,但是你看过效果图后,或许就有动力配置了,谁说程序员不讲究外观?

本文默认你的系统已经安装好git,curl和wget,如果没安装可能需要从xcode装起。

效果图

Mac OS X 工具技巧:一文搞定个性化命令行窗口(iTerm2 + zsh + oh-my-zsh 配置Powerline风格)_第1张图片

工具准备

  1. iTerm2:替代OSX自带终端的软件,相信我,一定比自带终端好用得多得多。
  2. zsh:听说zsh是OSX上最强大的shell,没有之一,于是我深陷其中。
  3. oh-my-zsh:,但是配置过程较为复杂,这个脚本能够帮你一键配置。用来管理 zsh的配置,同时还有很多社区贡献的主题配置以及好用的插件可供使用,非常好用。
  4. Powerline:基于oh-my-zsh的主题和字体。这个属于资源类,并不完全是工具,但哪个工具敢说自己不需要字体?

步骤预览:

  1. 安装 iTerm2
  2. 在 iTerm2 下配置 Solarized Dark Higher Contrast 配色方案
  3. 安装配置 zsh
  4. 安装 oh-my-zsh
  5. 安装 powerlevel9k 主题
  6. 安装 powerline 字体

1.安装iTerm2

官网下载地址:http://iterm2.com/,这个不用多说,双击安装即可。

2.在 iTerm2 下配置 Solarized Dark Higher Contrast 配色方案

首先,打开 配色方案地址。然后,将内容复制并保存为文件:

SolarizedDarkHigherContrast.itermcolors(注意后缀,OSX会自作聪明的加.xml,先保存,再点击重命名删除.xml即可)

然后双击即可安装。

其次,安装完后打开 iTerm2 终端,依次在菜单栏选择:iTerm2 –> Preferences –> Profiles –> Colors –> Colors Presets –> SolarizedDarkHigherContrast。

到此,配色方案成功安装。

3.安装与配置zsh

1、确认是否安装过zsh:

zsh --version

输出如下:

zsh 5.3 (x86_64-apple-darwin17.0)

说明Mac已经预装了。如果没有安装,使用pip或brew安装即可,非常简单。

2、确认当前shell:

echo $SHELL

如果不是/bin/zsh,则用需要修改:

chsh -s /bin/zsh 
#或
sudo chsh -s /bin/zsh

但是,这里我并没有成功! 查询oh-my-zash主页发现安装zsh使用chsh是有部分系统会失败,需要使用别的办法:

export SHELL=/bin/zsh
exec /bin/zsh -l

这样就能成功的看见/bin/zsh了。

4.安装 oh-my-zsh

使用curl命令安装:

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

使用wget安装:

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

5.安装 powerlevel9k 主题

git下载主题并拷贝到自定义主题文件夹下:

git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k

修改 ~/.zshrc 配置文件,配置如下:

ZSH_THEME="powerlevel9k/powerlevel9k"

到此,我们可以重新打开终端看看效果了。

可这么长的命令提示符一点都不美观!

接下来就来,简单定制下 powerlevel9k 主题(更深度的定制,可参看customizing-prompt-segments)

技巧1:修改命令提示符

默认的命令提示符为 user@userdemackbookPro,这样的提示符配合 powerlevel9k 主题太过冗长,因此我们选择将该冗长的提示符去掉,在 ~/.zshrc 配置文件后面追加如下内容:

#注意:DEFAULT_USER 的值必须要是系统用户名才能生效
DEFAULT_USER="user"

技巧2:简化左右侧元素显示

默认的 powerlevel9k 主题最右侧显示的元素为:每条命令的执行状态,历史命令条数,当前时间,这样也比较冗余。我在这里将 历史命令条数 这一元素去掉,这样看起来比较简洁。这需要修改 ~/.zshrc 配置文件,在后面追加如下内容,定制该主题的显示元素:

# 设置 oh-my-zsh powerlevel9k 主题左边元素显示
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir rbenv vcs)
# 设置 oh-my-zsh powerlevel9k 主题右边元素显示
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs time)

技巧3:设置语法高亮

这里会用到一个插件叫:zsh-syntax-highlighting,可以使终端输入的命令有语法高亮效果,安装方法如下:

1、git下载并拷贝到oh-my-zsh的插件 :

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting

2.修改配置文件~/.zshrc :

# 注意:zsh-syntax-highlighting 必须放在最后面(官方推荐)
plugins=( [plugins...] zsh-syntax-highlighting)

3.激活配置文件 ~/.zshrc :

source ~/.zshrc

技巧4:关于oh-my-zsh 插件

关于 oh-my-zsh 插件的管理是很简单的,有两个插件目录:

  • /Users/user/.oh-my-zsh/plugins: oh-my-zsh :官方插件目录,该目录已经预装了很多实用的插件,只不过没激活而已,需要参看官方目录来开启。
  • /Users/user/.oh-my-zsh/custom/plugins :oh-my-zsh 第三方插件目录;

只需要把插件下载到上面任何一个目录即可,然后在 ~/.zshrc 配置文件中的 plugins 变量中添加对应插件的名称即可,

plugins=(
  git
  extract
  z
  zsh-syntax-highlighting
)
  • git:oh-my-zsh 默认开启的;
  • extract:通用的解压缩插件,可以解压缩任何后缀的压缩文件,使用方法很简单:x 文件名;
  • z:能进入之前进入过的目录,通过模糊匹配来进入目录,很好用。

但是, 这时的插件是没有生效的,如图:
Mac OS X 工具技巧:一文搞定个性化命令行窗口(iTerm2 + zsh + oh-my-zsh 配置Powerline风格)_第2张图片

因为还差一步,激活oh-my-sh,打开~/.zshrc追加:

export ZSH=/Users/你的用户名/.oh-my-zsh #或者别的你的oh-my-zsh安装目录
source $ZSH/oh-my-zsh.sh

重新激活配置文件:

source ~/.zshrc

这时,使用命令才算成功,如图:
Mac OS X 工具技巧:一文搞定个性化命令行窗口(iTerm2 + zsh + oh-my-zsh 配置Powerline风格)_第3张图片
但!还没有完!你一定看到那个糟心的?号了。

6.安装 powerline 字体

好了,这时可以来解决?号的问题了,如图:
Mac OS X 工具技巧:一文搞定个性化命令行窗口(iTerm2 + zsh + oh-my-zsh 配置Powerline风格)_第4张图片
powerline的问号就是因为字体没安装,而且注意不只是安装字体就行了,需要配置iTerm2。

首先,git下载并执行install.sh脚本安装:

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

其次,打开iTerm2,按照路径打开:iTerm2 –> Preferences –> Profiles –> text,找到Font处,如图:
Mac OS X 工具技巧:一文搞定个性化命令行窗口(iTerm2 + zsh + oh-my-zsh 配置Powerline风格)_第5张图片

最后,这时的字体不是为powerline所支持的,需要点击Change Font选择有for powerline字样的字体,并勾选Use a different font for non-ASCII text,同样更改,才能生效更改后如图:
Mac OS X 工具技巧:一文搞定个性化命令行窗口(iTerm2 + zsh + oh-my-zsh 配置Powerline风格)_第6张图片
重启iTerm2,到此,大功告成。

再也不用担心输命令时,长时间对着枯燥的界面了。

坑是基本填完了,如果还有遗漏,欢迎大家补充指正了。

参考资源

  1. Mac OSX:Powerline风格的zsh配置
  2. mac 装了 oh my zsh 后比用 bash 具体好在哪儿?
  3. https://github.com/powerline/fonts
  4. mac下安装powerline美化终端窗口
  5. 我的 Mac 终端配置(Mac OSX + iTerm2 + Zsh + Oh-My-Zsh)
  6. https://unix.stackexchange.com/questions/136423/making-zsh-default-shell-without-root-access
  7. https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH
  8. 用Powerline美化你的Mac终端和Vim
    9. https://github.com/zsh-users/zsh-syntax-highlighting
  9. https://github.com/bhilburn/powerlevel9k#customizing-prompt-segments
  10. https://github.com/robbyrussell/oh-my-zsh
  11. https://github.com/SpaceVim/SpaceVim/issues/771
  12. https://stackoverflow.com/questions/6800952/oh-my-zsh-plugins-not-working

你可能感兴趣的:(效率工具)