我的终端环境:与众不同的 zsh 主题 - powerlevel10k

本文介绍 zsh 主题 powerlevel10k 的安装与配置。

什么是 powerlevel10k?

Powerlevel10 是一款 zsh 的主题,它强调性能、灵活性和开箱即用。之前,我已经介绍了一些 zsh 主题,而通过 p10k(powerlevel10k 的简称)的可配置化能力,同样能配置出覆盖出之前主题的类似效果。

系列阅读:

更多待续...

NerdFont 字体安装

安装 powerlevel10k 前,先安装它依赖的字体:NerdFont。不同系统的安装方法,可查看它的文档

MacOS 的话,可直接通过 Homebrew 快速安装:

bash 复制代码
brew tap homebrew/cask-fonts
brew install font-hack-nerd-font

安装完成,配置终端字体,进入 iTerm2 Settings -> Profiles -> Text -> Font -> MesloLGS NF 即可。

安装 powerlevel10k

通过如下命令 下载:

bash 复制代码
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

配置 ~/.zshrc,启用 powerlevel10k 主题:

bash 复制代码
ZSH_THEME="powerlevel10k/powerlevel10k"

重新终端,或执行 source ~/.zshrc 生效配置。

配置 powerlevel10k

执行 source ~/.zshrc 后,终端将进入到 powerlevel10k 的配置向导。

前置问题

为了确认字体安装是否成功,在正式开始配置前,要先回答几个问题才能进入到主题的自定义向导。

问题有诸如:

  • Does this look like a diamond (rotated square)? 这是看起来菱形吗?
  • Does this look like a lock? 这看起来是锁吗?
  • Does this look like an upwards arrow? 这看起来是向上箭头吗?

等等。

如果字体已经配置成功,这些问题看起来就像逗傻子一样,按实际情况回答问题即可。一般情况下,都是选择 "Yes"。

开始配置

进入到正式阶段,按步骤配置自己的提示符风格,下面一共 12 步,都是非常简单的回答问题。考虑到第一次配置,有懵逼的可能性,我把全部的步骤都列出来了。

  1. 选择提示符风格,分别是 Lean、Classic、Rainbow 和 Pure。我选风格 3,大众所爱的风格,彩虹 Rainbow,则输入 3。
  1. 字符集设置,毫无疑问,配置 unicode,选择 1。
  1. 提示符显示当前时间风格。我选择 1,只显示命令耗时,不显示当前时间。
  1. 提示符分隔符,也就是 src/master 之间的符号风格。我钟爱箭头,选择 1 -> Angled.
  1. 提示符头部风格,就是 master > 的风格选择。毫无疑问,我钟爱箭头,选择 1 - Sharp。
  1. 提示符尾部风格,钟爱箭头,但不是双箭头,选择 1 - Flat。
  1. 提示符高度,显示一行还是两行,体验过两行,还是一行更紧凑一些,选择 1 - one line。
  1. 两个命令键的间距,我喜欢两行离的近一点,选择 1 - Compact。
  1. 提示符 Icons,多点 Icon 更帅,否则看起来就和一般主题没区别了,so 选择 2 - Many Icons。
  1. 提示符丰富度,增加一些文本描述,帮助理解提示符中字符含义。还是简洁为美,毕竟空间不能占用太多,而且含义简单,无需文本辅助。我选择 1 - Consice。
  1. 这是什么配置?提示符瞬闪?好像命令执行后提示符就立刻消失,只保留在最新的提示符,先选择 n - No 看看效果吧。
  1. 提示符高性能模式,是否启用。推荐启用,就启用吧 1-verbose,如果发现有兼容问题,在重新配置 off。

到此基本全部的配置都已经完成,powerlevel10k 命令行提示符的最终效果,如下所示:

配置完成后,如果希望重新配置,执行 p10k configure 会重新打开配置向导。

配置文件

通过 powerlevel10k 的配置导航能快速自定义提示符的主题风格,但如想更细粒度的配置,可直接在 $HOME/.p10k.zsh 配置,配置导航只是最粗粒度的配置方式。

如配置提示符两侧内容,通过 ~/.p10k.sh 中的变量 POWERLEVEL9K_LEFT_PROMPT_ELEMENTSPOWERLEVEL9K_RIGHT_PROMPT_ELEMENTS 设置。

如下所示:

zsh 复制代码
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
  os_icon                 # os identifier
  dir                     # current directory
  vcs                     # git status
  # prompt_char           # prompt symbol
)

typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
  status                  # exit code of the last command
  command_execution_time  # duration of the last command
  ...
  # time                  # current time
  ...
)

如前面配置的时候,设置了不显示当前时间,现在可以通过打开 POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS 中的 time 就可重新显示命令的时间。

还有前面对提示符瞬闪的配置,transient 设置为 off。如果希望启用,同时有不重新经历一次配置向导,直接进入 ~/.p10k.zsh 配置变量 POWERLEVEL9K_TRANSIENT_PROMPT=always,即可。

zsh 复制代码
# Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt
# when accepting a command line. Supported values:
#
#   - off:      Don't change prompt when accepting a command line.
#   - always:   Trim down prompt when accepting a command line.
#   - same-dir: Trim down prompt when accepting a command line unless this is the first command
#               typed after changing current working directory.
typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always

总结

本文介绍了 powerlevel10k 的安装与配置,它的更多能力还可以在 ~/.p10k.sh 继续探索,诸如对诸多其他工具的支持。

最后,如果希望你命令行提示能给你提供更多信息,请安装 powerlevel10k!

我的博文:我的终端环境:与众不同的 zsh 主题 - powerlevel10k

相关推荐
a1117761 分钟前
Markdown生成思维导图(html 开源)
前端·开源·html
我命由我1234512 分钟前
React - state、state 的简写方式、props、props 的简写方式、类式组件中的构造器与 props、函数式组件使用 props
前端·javascript·react.js·前端框架·html·html5·js
钰衡大师13 分钟前
Vue 3 源码学习教程
前端·vue.js·学习
C澒14 分钟前
React + TypeScript 编码规范|统一标准 & 高效维护
前端·react.js·typescript·团队开发·代码规范
时光少年31 分钟前
Android 视频分屏性能优化——GLContext共享
前端
AD钙奶-lalala39 分钟前
SpringBoot 4.0.3配置Swagger
java·spring boot·后端
IT_陈寒1 小时前
JavaScript开发者必知的5个性能杀手,你踩了几个坑?
前端·人工智能·后端
跟着珅聪学java1 小时前
Electron 精美菜单设计
运维·前端·数据库
日光倾1 小时前
【Vue.js 入门笔记】闭包和对象引用
前端·vue.js·笔记
一只程序熊1 小时前
UniappX 未找到 “video“ 组件,已自动当做 “view“ 组件处理。请确保代码正确,或重新生成自定义基座后再试。
前端