背景

我们无论是在Mac还是Linux平台上工作,都避免不了要使用终端来执行命令。然而系统默认的终端功能非常简单,没有命令建议、自动补全等功能,对强依赖终端的工作者来说很不友好。

还好有oh-my-zsh,它对zsh进行了增强,不仅有丰富的插件,还可以自定义主题配置。了解或使用过它的同学一定会觉得非常香。这里引用一篇少数派作者之前的文章,我就不赘述它的好处了:Oh My Zsh 配置指南

使用

安装和使用都非常简单,在安装了zsh的前提下,一行命令即可搞定:

1
2
3
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 或者
sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

特别提醒: 如果访问不了GitHub的话,可以使用国内镜像备份仓库:

1
2
git clone https://gitee.com/mirrors/oh-my-zsh.git
bash .oh-my-zsh/tools/install.sh

自定义

即便oh-my-zsh已经如此强大,还是有不满足需求的地方。

比如日常工作中,我们有时候会重复执行许多相同命令,但来回切换桌面后就忘了上一次执行是什么时候了,因为终端命令默认不显示时间戳的。

在这里插入图片描述

如上图,以我开发移动应用为例,每次编译成功后习惯用adb命令安装apk到手机,没有时间戳提醒,我就会忘记上一次安装是什么时候了,不确定是不是最新编译的。

所以我想如果是这样的效果就好多了:

在这里插入图片描述

每次执行任何命令都会留下时间,就非常棒了。好在oh-my-zsh可以自定义主题配置文件,最终可以达到这样的效果。

首先编辑当前的配置文件:

1
2
vim ~/.oh-my-zsh/themes/$ZSH_THEME.zsh-theme
# 没有vim可以用open -e

打开后,内容如下,可以看见默认已经配置了一些插件,比如识别git分支信息:

1
2
3
4
5
6
7
PROMPT="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
PROMPT+=' %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)'

ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"

这个就相当于你的命令前缀模板,要显示时间的话,达到和上图一样的效果,可在第二行添加:

1
2
3
……
PROMPT+="%D{%H:%M:%S}"
……

保存后重启终端,就OK了!

如果想要12小时制,就把H改成L。如果还需要显示年月日的话,补充一下即可:

1
PROMPT+="%D{%y/%m/%f} %D{%H:%M:%S}"