zsh 之所以被广为推荐,其中 oh-my-zsh 功不可没。它支持大量方便的插件,可以让你的 Shell 玩出花来。
安装 oh-my-zsh,因为安装 oh-my-zsh 过程中会直接覆盖 ~/.zshrc 文件,所以在有必要的情况下需要提前备份该文件中的内容:
| 1 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" | 
安装完毕之后,会生成 ~/.oh-my-zsh 目录,看一下该目录大致的结构:
| 1 | - plugins // oh-my-zsh 默认提供的插件存放位置 | 
前面说过,oh-my-zsh 会覆盖原有的 ~/.zshrc, 它会将其默认的配置写在里面。其中就包括 主题 和 插件
oh-my-zsh 主题
~/.oh-my-zsh/themes/ 下是默认支持的主题样式,可以找到你想要的主题,并在 ~/.zshrc 中指定:
| 1 | ZSH_THEME="xxx" | 
如果不知道选取哪种,则建议使用随机主题:
| 1 | ZSH_THEME="random" | 
会在每次执行 source ~/.zshrc 或者 每次重新打开终端时随机加载一个主题,从而选择自己喜欢的主题。
oh-my-zsh 插件
我们可以在 ~/.zshrc 中指定需要使用的插件列表, 比如贴一下我目前 zsh 的插件列表:
| 1 | plugins = ( | 
其中除了最后两个 zsh-autosuggestions 和 zsh-syntax-highlighting 之外,其他的插件都是 oh-my-zsh 内置的。
关于每个插件的具体用法,其实在对应的插件目录下面都会有相关 README.md 可供参考。    
下面分别说介绍一下这些不同的插件,这些插件都需要在 ~/.zshrc 的 plugins 字段中配置,就不再赘述。
git
作用:
- 如果当前是 git 项目,则会直接显示当前项目所在的 git 分支 
- 可以使用各种 git 命令的缩写: 
 例如:- 1 
 2
 3- git ==> g 
 git add ==> ga
 git add -all ==> gaa- 具体有哪些 git 相关命令缩写,可以参考 - ~/.oh-my-zsh/plugins/git/git.plugin.zsh
autojump
这是 autojump 的官方仓库,autojump 可以非常方便的在各个历史目录中跳转切换。
除了需要在 ~/.zshrc 中将 autojump 的 zsh 插件添加进来之外,还需要手动安装 autojump 命令:
| 1 | brew install autojump | 
autojump 是基于历史命令记录的,想要快速跳转必须之前访问过该目录。autojump 同时有命令缩写 j,比如:
之前的操作:
| 1 | cd ~/work/HelloWorld | 
有了之前的历史命令记录之后,下次再想切换到该目录,就可以方便的跳转:
| 1 | j HelloWorld | 
sudo
sudo 可以很方便地在之前的命令加上 sudo 前缀,只要按两次 esc 键即可。
zsh-autosuggestions
zsh-autosuggestions 会在你输入命令时,给出建议的命令,默认按 → 即 TAB 键补全。
安装:
| 1 | git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions | 
我们还可以修改补全的按键,比如使用 ctrl + space 来补全:
| 1 | bindkey '^ ' autosuggest-accept | 
zsh-syntax-highlighting
zsh-syntax-highlighting 可以分别高亮 正确 和 错误 的命令,让用户提前知道自己是否有输错命令。
安装:
| 1 | git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting |