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
3git ==> 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 |