菜单

配置模板

相关源文件

目的与范围

Powerlevel10k 提供了一套预定义的配置模板,作为用户自定义配置的基础。这些模板定义了可以应用于提示符的不同的视觉样式和功能集。配置向导(在 配置向导 中介绍)在生成用户自定义配置文件时,会使用这些模板作为起点。

本文档介绍了可用的模板、它们的特点以及它们如何构建提示符元素和视觉样式。

来源: config/p10k-lean.zsh1-6 config/p10k-classic.zsh1-6 config/p10k-rainbow.zsh1-6

可用模板

Powerlevel10k 包含六个内置配置模板,每个模板都具有独特的视觉样式。

模板描述目标用例
lean极简设计,透明背景通用,干净的外观
classic传统的 powerline 样式,带有斜杠分隔符熟悉 powerline 提示符的用户
rainbowPowerline 样式,带有彩色分段背景偏好鲜艳、多彩提示符的用户
lean-8colorslean 的变体,针对有限颜色终端进行优化支持 8 种颜色的终端
purePure 提示符的模拟从 Pure 提示符迁移的用户
robbyrussellOh My Zsh 主题 robbyrussell 的模拟从 robbyrussell 主题迁移的用户

每个模板都存储在 config/ 目录中,作为一个完整的配置文件。

来源: config/p10k-lean.zsh1-6 config/p10k-classic.zsh1-6 config/p10k-rainbow.zsh1-6 config/p10k-lean-8colors.zsh1-6 config/p10k-pure.zsh1-16 config/p10k-robbyrussell.zsh1-9

模板结构

模板与配置系统的关系

来源: config/p10k-lean.zsh1-6 config/p10k-classic.zsh1-6 config/p10k-rainbow.zsh1-6 config/p10k-lean-8colors.zsh1-6 config/p10k-pure.zsh1-16 config/p10k-robbyrussell.zsh1-9

通用结构

所有配置模板都具有相似的结构

  1. 初始化代码:设置环境并取消先前配置
  2. 提示符元素定义:配置左侧和右侧提示符中显示的元素
  3. 视觉样式配置:背景、分隔符和装饰品的设置
  4. 分段特定配置:每个提示符分段的详细设置

来源: config/p10k-lean.zsh15-34 config/p10k-classic.zsh15-34 config/p10k-rainbow.zsh15-34 config/p10k-lean-8colors.zsh15-34 config/p10k-pure.zsh1-16 config/p10k-robbyrussell.zsh1-9

模板详情

Lean 模板

lean 模板(p10k-lean.zsh)提供了一个极简的提示符,带有透明背景。它被设计为干净且不显眼,同时仍然提供基本信息。

主要特性

  • 透明背景,无分段分隔符
  • 两行提示符,命令提示符在第二行
  • 提示符符号根据上次命令的成功/失败而改变颜色
  • 高度可读的 Git 状态信息

配置亮点

  • 无背景颜色(POWERLEVEL9K_BACKGROUND=
  • 无分段分隔符(POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR=
  • 绿色/红色提示符符号(POWERLEVEL9K_PROMPT_CHAR_OK_VIINS_FOREGROUND=76

来源: config/p10k-lean.zsh121-125 config/p10k-lean.zsh190-207 config/p10k-lean.zsh26-34

Classic 模板

classic 模板(p10k-classic.zsh)实现了传统的 powerline 样式,并在各个分段之间使用斜杠分隔符。

主要特性

  • 深色背景,分段之间有斜杠分隔符
  • 不同分段具有不同的背景颜色
  • 多行提示符,带有连接装饰品
  • 完整的 powerline 符号集

配置亮点

  • 深色背景(POWERLEVEL9K_BACKGROUND=238
  • 斜杠分段分隔符(POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0'
  • 连接的多行提示符,带有装饰品(POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%242F╭─'

来源: config/p10k-classic.zsh164-179 config/p10k-classic.zsh136-144 config/p10k-classic.zsh26-34

Rainbow 模板

rainbow 模板(p10k-rainbow.zsh)具有彩色的 powerline 样式,每个分段都有不同的背景颜色。

主要特性

  • 每个分段都有鲜艳、独特的颜色
  • Powerline 分隔符,带有鲜艳的背景
  • 多行提示符,带有连接装饰品
  • Git 状态的特殊颜色处理

配置亮点

  • 分段的背景颜色不同(例如,POWERLEVEL9K_DIR_BACKGROUND=4
  • 基于状态的 VCS 背景颜色(POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2
  • 连接的多行提示符,带有装饰品(POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%242F╭─'

来源: config/p10k-rainbow.zsh217 config/p10k-rainbow.zsh356-361 config/p10k-rainbow.zsh138-144

8色 Lean 模板

8 色 lean 模板(p10k-lean-8colors.zsh)是 lean 样式的变体,针对颜色支持有限的终端进行了优化。

主要特性

  • 仅使用基本的 8 种 ANSI 颜色
  • 极简设计,透明背景
  • 针对颜色有限的终端进行了优化

配置亮点

  • 所有元素的 ANSI 颜色代码(POWERLEVEL9K_PROMPT_CHAR_OK_VIINS_FOREGROUND=2
  • 透明背景(POWERLEVEL9K_BACKGROUND=
  • 简化的 Git 状态格式化器颜色配置

来源: config/p10k-lean-8colors.zsh191-193 config/p10k-lean-8colors.zsh121-125 config/p10k-lean-8colors.zsh370-383

纯粹模板

纯粹模板(p10k-pure.zsh)模拟了流行的Pure提示符,差异极小。

主要特性

  • 忠实还原Pure提示符美学
  • 简约、两行提示符,格式清晰
  • 命令执行时间仅在超过阈值时显示
  • 简化的Git状态显示

配置亮点

  • 透明背景(POWERLEVEL9K_BACKGROUND=
  • 无视觉标识符(POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION=
  • 类似Pure格式的Git状态
  • 品红提示符符号(POWERLEVEL9K_PROMPT_CHAR_OK_VIINS_FOREGROUND=$magenta

来源: config/p10k-pure.zsh1-16 config/p10k-pure.zsh67-73 config/p10k-pure.zsh78-89

Robbyrussell 模板

Robbyrussell 模板(p10k-robbyrussell.zsh)复制了 Oh My Zsh 的默认主题。

主要特性

  • 完全复制 robbyrussell 主题外观
  • 简化、单行提示符
  • 最小化的 Git 状态信息
  • 箭头提示符符号,颜色指示命令成功/失败

配置亮点

  • 透明背景(POWERLEVEL9K_BACKGROUND=
  • 无段分隔符或图标(POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION=
  • 粗体箭头提示符符号(POWERLEVEL9K_PROMPT_CHAR_CONTENT_EXPANSION='%B➜ '
  • 青色目录段(POWERLEVEL9K_DIR_FOREGROUND=cyan

来源: config/p10k-robbyrussell.zsh1-9 config/p10k-robbyrussell.zsh35-39 config/p10k-robbyrussell.zsh46 config/p10k-robbyrussell.zsh49

提示符元素配置

所有模板都使用 POWERLEVEL9K_LEFT_PROMPT_ELEMENTSPOWERLEVEL9K_RIGHT_PROMPT_ELEMENTS 数组来配置显示在提示符中的元素。

常见的左侧提示符元素

  • dir:当前目录
  • vcs:版本控制状态(Git)
  • prompt_char:提示符符号

常见的右侧提示符元素

  • status:上次命令的退出码
  • command_execution_time:上次命令的持续时间
  • background_jobs:后台作业指示符
  • 各种语言/环境指示符(virtualenv、pyenv 等)

来源: config/p10k-lean.zsh26-34 config/p10k-lean.zsh40-111 config/p10k-classic.zsh26-34 config/p10k-classic.zsh40-112 config/p10k-rainbow.zsh355-481

段配置结构

每个提示符段都有自己的配置参数,用于控制其外观和行为。例如,我们以 Git 状态段为例进行分析

Git 状态段(以及其他段)的配置通过以下方式进行:

  1. 视觉设置:颜色、图标和样式参数
  2. 格式化函数:决定信息如何显示的函数
  3. 行为选项:控制该段何时以及如何显示的设置

段的通用参数包括:

  • POWERLEVEL9K_SEGMENT_FOREGROUND:文本颜色
  • POWERLEVEL9K_SEGMENT_BACKGROUND:背景颜色
  • POWERLEVEL9K_SEGMENT_VISUAL_IDENTIFIER_EXPANSION:自定义图标
  • 段特定的选项,如截断长度、显示阈值等。

来源: config/p10k-lean.zsh343-505 config/p10k-classic.zsh352-513

通用模板参数

尽管在视觉上有所不同,但所有模板都共享通用的配置参数

视觉样式参数

  • POWERLEVEL9K_MODE:定义字符集(通常是 nerdfont-complete
  • POWERLEVEL9K_ICON_PADDING:控制图标后的间距
  • POWERLEVEL9K_PROMPT_ADD_NEWLINE:在每个提示符前添加一个空行
  • POWERLEVEL9K_MULTILINE_*:控制多行提示符的外观
  • POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR:段之间的分隔符

段行为参数

  • POWERLEVEL9K_SHORTEN_STRATEGY:目录如何缩短
  • POWERLEVEL9K_SHORTEN_DIR_LENGTH:目录缩短的长度
  • POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY:Git 状态的文件计数阈值
  • POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD:何时显示命令时长

来源: config/p10k-lean.zsh114-118 config/p10k-lean.zsh139-141 config/p10k-lean.zsh213-262 config/p10k-classic.zsh114-118 config/p10k-classic.zsh133-150

模板选择和自定义

配置向导提供了这些模板作为起点。选择模板后,向导允许用户自定义各种方面:

  1. 提示符样式(简洁、经典、彩虹)
  2. 字符集(ASCII、Unicode、Powerline、Nerd Fonts)
  3. 提示符高度(单行或双行)
  4. 连接符号(用于多行提示符)
  5. 提示符流动(流畅或集中)
  6. 提示符间距和分隔符
  7. 图标显示选项
  8. 提示符符号自定义
  9. 当前目录显示样式
  10. 要显示的附加信息

最终配置将写入 ~/.p10k.zsh

来源: config/p10k-lean.zsh1-6 config/p10k-classic.zsh1-6 config/p10k-rainbow.zsh1-6

总结

Powerlevel10k 的配置模板提供了从极简到多彩的各种视觉风格,作为用户配置的基础。它们不仅定义了视觉外观,还定义了显示哪些信息以及如何格式化。配置向导使用这些模板作为生成个性化配置的起点,让用户无需手动配置数百个参数即可创建符合其偏好的提示符。