菜单

自定义指南

相关源文件

本指南将解释如何自定义 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_ELEMENTSPOWERLEVEL9K_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 替换为实际的段名称(例如,DIRVCSSTATUS)。

基于状态的自定义

许多段有不同的状态,可以独立设置样式

图示:段自定义流程

来源:internal/p10k.zsh473-483 config/p10k-lean.zsh183-273

内容扩展

您可以使用 CONTENT_EXPANSION 参数来精确控制段中显示的内容。

此参数接受 Zsh 提示扩展序列。

来源:internal/p10k.zsh720-751 internal/p10k.zsh955-986

视觉样式

颜色

Powerlevel10k 支持两种指定颜色颜色集的方式

  1. 使用颜色代码 (0-255)
  2. 使用颜色名称(必须在 __p9k_colors 数组中定义)

要查看可用颜色及其代码列表,请运行 getColorCode foregroundgetColorCode 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 函数接受以下参数

  1. 段名称(在函数内部为 $0
  2. 背景颜色
  3. 前景色
  4. 图标标识符
  5. 参数扩展标志(0 或 1)
  6. 内容条件(可选)
  7. 要显示的内容

来源: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

性能考量

对于性能敏感的片段,请考虑以下技术

  1. 对昂贵的操作使用异步工作器系统
  2. 缓存不需要在每次提示时更新的结果
  3. 使用条件显示仅在相关时显示片段

来源: internal/p10k.zsh378-417

常见自定义示例

这里有一些流行的自定义设置

目录缩短

来源: config/p10k-lean.zsh213-216 config/p10k-lean.zsh262-265

Git 状态格式化

来源: config/p10k-lean.zsh502-504 config/p10k-classic.zsh511-513

基于状态的提示符号

来源: config/p10k-lean.zsh191-193 config/p10k-classic.zsh198-200

本指南涵盖了 Powerlevel10k 定制的要点。有关更多示例,请浏览存储库中提供的配置文件模板和 Powerlevel10k 文档。