第 16 期 | 效率神器 Oh My Zsh
在 Oh My Zsh 官方首页是这么介绍它自己的:
“安装之后,你的终端 Shell 立马会成为众人瞩目的焦点,否则我们全额退款!(反正不要钱,随便说说)你的每一个命令行输入,都将借助数百种强大插件和精美主题的加持,效率爆表。咖啡馆里的陌生人会凑过来问:"天呐!这终端太酷了,你难道是个天才程序员?"”
Oh My Zsh 的作者看来很外向,介绍语还有一句是:Oh My Zsh 不会让你变成 10 倍效率的程序员...但用了它,你可能会觉得自己就是。
在介绍语上整活的 Oh My Zsh,确实有实力在,目前在 GitHub 上,已经拿下了 176k 的 star:
那么 Oh My Zsh 是什么呢?很简单,可以看它做是 zsh 的 plus 增强版本。
这是没有安装 Oh My Zsh 之前的终端:
这是安装 Oh My Zsh 之后的终端:
这里 Oh My Zsh 清晰地展示了目录名称以及当前 Git 项目的分支名称,并且加上了颜色高亮。
如果默认的主题你不喜欢,可以在 Themes 找到其他主题,然后在 ~/.zshrc
更改 ZSH_THEME
字段
Oh My Zsh 最好用之处并不在此,而是它丰富的插件,比如 Git(该插件为预装插件),按下 gst
就相当于 git status
:
该插件为大部分 Git 命令做了别名,解放高频的 Git 操作:
ga
和gaa
:git add
和git add --all
的别名gco
和gcb
:git checkout
和git checkout -b
的别名(检出分支 和 检出并新建分支)gcmsg
:git commit --message
的别名(提交并添加描述信息)gd
:git diff
的别名(查看差异)gl
:git pull
的别名(拉取远程更新)gp
:git push
的别名(推送至远程)gpsup
:git push --set-upstream origin $(git_current_branch)
的别名(推送并设置上游分支到远程仓库的当前分支)gst
:git status
的别名(查看仓库状态)
第二好用的插件是 zsh-autosuggestions,也就是自动补全,比如我曾经输入过这么一长串命令 find . -name "node_modules" -type d -prune -exec rm -rf {} +
,下次输入 f
,就出现了该历史命令的建议,按下 Tab 即可补全:
该插件不是预装,需要先下载该插件:
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
编辑 ~/.zshrc
,将 zsh-autosuggestions
添加进括号中:
plugins=(git zsh-autosuggestions)
最后重启终端。
第三个是语法高亮插件 zsh-syntax-highlighting:
下载插件:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
编辑 ~/.zshrc
:
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)