如你所见,Powerlevel9k 是一款“花哨”的 ZSH 主题。(上图来自该项目 Github 主页)
它使用了 Powerline Fonts 作为其漂亮界面的支持,所以需要先安装这款字体才能得到类似上面的显示效果。
下面以 MacOS, Oh-My-Zsh 为例说明一下安装步骤。
更详尽的步骤你可以参阅官方安装说明。
安装
首先,要保证你使用的是 zsh,推荐一步到位使用 Oh-My-Zsh 进行安装和配置 zsh。
然后进行主题的安装,使用 git clone
命令来下载项目的最新代码到对应的主题目录。
$ git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
编辑 ~/.zshrc
来启用主题,在其中将 ZSH_THEME
改为
ZSH_THEME="powerlevel9k/powerlevel9k"
如果你还没有安装字体,那么可以使用下面的命令来安装所需字体。
# clone
git clone https://github.com/powerline/fonts.git
# install
cd fonts
./install.sh
# clean-up a bit
cd ..
rm -rf fonts
字体安装完毕之后,打开终端你会发现字体依然没有生效,这是因为你没有选择对应的字体。在设置中选择你想要的支持字体。
到此,安装就算是完成了。
但是你会发现,还是无法显示出本文一开始图中的诸如 Github 标志、沙漏 等图标。如果你想要显示这些图标,还需安装 Awesome-Terminal Fonts 这款字体。
本人没有尝试过,所以有需要的可以阅读文档自行安装。
个性化定制
编辑 ~/.zshrc
文件,加入下面的内容。
# 下面这个变量表示最左侧的提示符所显示的内容,默认是 `%n@%m`,也就是你的用户名以及终端名称。
POWERLEVEL9K_CONTEXT_TEMPLATE="🤘 "
# 下面这个变量表示右侧提示符显示内容
# 此处的设置依次是,上一命令执行状态、root 权限指示、后台任务个数、上一命令执行时间、系统的负载均值 (load averages)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs command_execution_time load)
# 下面这个变量表示 低于这个值的命令执行时间不显示,0 也就是命令执行时间多长都显示
POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD="0"
更多的定制内容可以参看官方文档。
如果你想要改变颜色,那么可以修改主题文件
~/.oh-my-zsh/custom/themes/powerlevel9k/powerlevel9k.zsh-theme
# 当前工作路径的背景颜色
# 在 743 行附近
# 作如下修改,"075" 为浅蓝色
...
"$1_prompt_segment" "$0_${current_state}" "$2" "075" "$DEFAULT_COLOR" "${current_path}" "${dir_states[$current_state]}"
...
修改其它位置颜色的办法,你可以搜索对应函数的名字,然后找到输出的位置。如你想修改 command_execution_time
的颜色,那么你可以在主题文件中搜索 command_execution_time
。
查看所有支持的颜色对应的数字,可以在终端中执行下面的代码。
for code ({000..255}) print -P -- "$code: %F{$code}This is how your text would look like%f"
笔者并没有找到如何在 ~/.zshrc
文件中改变颜色的方法,如果你知道,可以通过留言告诉我。