本指南将解释如何自定义 Powerlevel10k ZSH 主题,以满足您的偏好和工作流程需求。我们将涵盖配置基础、段自定义、视觉样式以及创建您自己的自定义提示段。有关安装和初始设置的信息,请参阅 安装和设置。有关核心架构的详细信息,请参阅 核心架构。
Powerlevel10k 通过一个单一的配置文件设计为高度可自定义:~/.p10k.zsh。此文件包含各种 POWERLEVEL9K_* 参数,这些参数控制主题的外观和行为。
创建配置文件的推荐方法是运行交互式配置向导
这将根据您的选择生成一个个性化的 ~/.p10k.zsh 文件,该文件会自动被您的 .zshrc 源文件引用。
或者,您可以从提供的模板配置之一开始,并进行自定义
p10k-lean.zsh - 简约外观,带有精简的分隔符p10k-classic.zsh - 传统 powerline 外观,带有三角形分隔符p10k-rainbow.zsh - 彩虹色外观p10k-pure.zsh - 模仿 Pure 提示样式编辑您的 ~/.p10k.zsh 文件后,只需源文件即可在不重启 shell 的情况下应用更改
来源:config/p10k-lean.zsh1-21 internal/p10k.zsh1-50
Powerlevel10k 将提示分为左侧和右侧,每一侧都包含可配置的段。
图示:Powerlevel10k 提示结构
来源:config/p10k-lean.zsh26-111 internal/p10k.zsh614-1100
出现在您的提示中的段由您 ~/.p10k.zsh 文件中的 POWERLEVEL9K_LEFT_PROMPT_ELEMENTS 和 POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS 数组控制。
您可以通过修改这些数组来添加、删除或重新排序段。特殊 newline 元素会在提示中创建一个新行。
来源:config/p10k-lean.zsh26-111 config/p10k-classic.zsh26-112
每个段都可以通过特定参数独立自定义。
大多数段支持这些自定义参数
| 参数格式 | 目的 | 示例 |
|---|---|---|
POWERLEVEL9K_SEGMENT_FOREGROUND | 文本颜色 | POWERLEVEL9K_DIR_FOREGROUND=31 |
POWERLEVEL9K_SEGMENT_BACKGROUND | 背景颜色 | POWERLEVEL9K_DIR_BACKGROUND=238 |
POWERLEVEL9K_SEGMENT_VISUAL_IDENTIFIER_EXPANSION | 自定义图标 | POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='📁' |
POWERLEVEL9K_SEGMENT_ICON_BEFORE_CONTENT | 图标位置 | POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false |
POWERLEVEL9K_SEGMENT_PREFIX | 段前的文本 | POWERLEVEL9K_DIR_PREFIX='in ' |
POWERLEVEL9K_SEGMENT_SUFFIX | 段后的文本 | POWERLEVEL9K_DIR_SUFFIX=' ' |
将 SEGMENT 替换为实际的段名称(例如,DIR、VCS、STATUS)。
许多段有不同的状态,可以独立设置样式
图示:段自定义流程
来源:internal/p10k.zsh473-483 config/p10k-lean.zsh183-273
您可以使用 CONTENT_EXPANSION 参数来精确控制段中显示的内容。
此参数接受 Zsh 提示扩展序列。
来源:internal/p10k.zsh720-751 internal/p10k.zsh955-986
Powerlevel10k 支持两种指定颜色颜色集的方式
__p9k_colors 数组中定义)要查看可用颜色及其代码列表,请运行 getColorCode foreground 或 getColorCode background。
来源:internal/p10k.zsh59-110 internal/p10k.zsh115-139
图标取决于您使用的字体。将 POWERLEVEL9K_MODE 设置为匹配您的终端字体
您可以自定义任何段的图标
来源:internal/icons.zsh1-805 config/p10k-lean.zsh114-117 config/p10k-classic.zsh114-117
您可以自定义段之间的分隔符和其他装饰元素
来源:config/p10k-lean.zsh143-154 config/p10k-classic.zsh138-186
您可以扩展 Powerlevel10k 并添加自己的自定义段。
图示:自定义段创建过程
这是一个自定义段的简单示例
_p9k_prompt_segment 函数接受以下参数
$0)来源:internal/p10k.zsh614-850 internal/p10k.zsh1124-1144
对于更复杂的段,您可以生成动态内容
来源: internal/p10k.zsh1124-1148 internal/p10k.zsh359-376
您可以让某些片段仅在特定条件下显示
来源: config/p10k-lean.zsh477 config/p10k-lean.zsh622-628
您可以定义自己的图标或覆盖现有图标
来源: internal/icons.zsh1-17 internal/p10k.zsh521-530
为了进行高级内容定制,您可以使用这些特殊扩展
| 可变 | 目的 |
|---|---|
${P9K_CONTENT} | 默认内容 |
${P9K_VISUAL_IDENTIFIER} | 片段的图标 |
$COLUMNS | 终端宽度 |
例如
来源: internal/p10k.zsh720-727 internal/p10k.zsh955-962
对于性能敏感的片段,请考虑以下技术
这里有一些流行的自定义设置
来源: config/p10k-lean.zsh213-216 config/p10k-lean.zsh262-265
来源: config/p10k-lean.zsh502-504 config/p10k-classic.zsh511-513
来源: config/p10k-lean.zsh191-193 config/p10k-classic.zsh198-200
本指南涵盖了 Powerlevel10k 定制的要点。有关更多示例,请浏览存储库中提供的配置文件模板和 Powerlevel10k 文档。