菜单

参数参考

相关源文件

目的与范围

本文档提供了Powerlevel10k所有配置参数的综合参考。它涵盖了参数命名约定、常见参数类型以及参数如何影响提示的外观和行为。有关创建自定义段的信息,请参阅自定义指南,有关配置模板的详细信息,请参阅配置模板

参数系统概述

Powerlevel10k使用一套复杂的参数系统来控制提示的方方面面。参数是具有特定命名约定的Zsh变量,这些约定决定了提示段的颜色、图标、间距、内容和显示条件。

来源: internal/p10k.zsh474-508 config/p10k-lean.zsh15-22

参数命名约定

Powerlevel10k 参数遵循以下命名约定:

来源: internal/p10k.zsh474-508 config/p10k-lean.zsh114-161

  • 所有参数都以 POWERLEVEL9K_ 开头
  • 段参数包含段名(全大写),例如 POWERLEVEL9K_DIR_FOREGROUND
  • 一些段具有特定状态的参数(例如 POWERLEVEL9K_VCS_CLEAN_BACKGROUND
  • Property 通常表示正在配置的方面(例如 FOREGROUNDBACKGROUNDCONTENT_EXPANSION

全局参数

这些参数影响提示的整体行为和外观。

参数描述示例值
POWERLEVEL9K_MODE定义使用的字符集(字体)nerdfont-complete
POWERLEVEL9K_ICON_PADDING控制图标后的间距nonemoderate
POWERLEVEL9K_ICON_BEFORE_CONTENT控制图标位置truefalse 或留空表示混合
POWERLEVEL9K_PROMPT_ADD_NEWLINE在提示前添加空行truefalse
POWERLEVEL9K_SHOW_RULER在提示前显示水平线truefalse
POWERLEVEL9K_RULER_CHAR用于标尺的字符
POWERLEVEL9K_RULER_FOREGROUND标尺的颜色240

来源: config/p10k-lean.zsh113-162 config/p10k-classic.zsh114-161

提示结构参数

这些参数控制提示的布局和结构。

参数描述示例值
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS显示在左侧的段(dir vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS显示在右侧的段(status command_execution_time)
POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR左侧段之间的分隔符\uE0B0
POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR右侧段之间的分隔符\uE0B2
POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR同色段之间的分隔符\uE0B1
POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR同色段之间的分隔符\uE0B3
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX第一行提示的后缀%242F╭─
POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX中间行提示的后缀%242F├─
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX最后一行提示的后缀%242F╰─
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX第一行提示的后缀%242F─╮
POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX中间行提示的后缀%242F─┤
POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX最后一行提示的后缀%242F─╯
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR用于填充第一行间隙的字符
POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL没有左侧段时使用的符号%{%}
POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL没有右侧段时使用的符号%{%}

来源: config/p10k-lean.zsh26-111 config/p10k-classic.zsh26-117 config/p10k-classic.zsh136-184

样式参数

这些参数控制颜色和视觉样式。

参数描述示例值
POWERLEVEL9K_BACKGROUND默认背景颜色238 或留空字符串表示透明
POWERLEVEL9K_*_FOREGROUND段的前景色31
POWERLEVEL9K_*_BACKGROUND段的背景色4
POWERLEVEL9K_*_VISUAL_IDENTIFIER_EXPANSION段的自定义图标
POWERLEVEL9K_*_CONTENT_EXPANSION段的自定义内容${P9K_CONTENT}
POWERLEVEL9K_*_PREFIX显示在段之前的文本in
POWERLEVEL9K_*_SUFFIX显示在段之后的文本
POWERLEVEL9K_*_LEFT_WHITESPACE段之前的空格
POWERLEVEL9K_*_RIGHT_WHITESPACE段之后的空格

来源: internal/p10k.zsh532-554 config/p10k-lean.zsh185-207 config/p10k-rainbow.zsh356-370

颜色指定

颜色可以通过以下几种方式指定:

  1. 按数字: 1255 (ANSI 颜色代码)
  2. 按名称: redgreenblue (在 __p9k_colors 数组中定义)
  3. 按十六进制代码: #FF0000 (适用于真彩色终端)

来源: internal/p10k.zsh59-110 internal/p10k.zsh532-554

段显示参数

这些参数控制段的显示时间和方式。

参数描述示例值
POWERLEVEL9K_*_DISABLED完全禁用该段true
POWERLEVEL9K_*_SHOW_ON_COMMAND仅在特定命令后显示该段git
POWERLEVEL9K_*_SHOW_ON_UPGLOB在某些文件存在时显示该段*.js|package.json
POWERLEVEL9K_*_THRESHOLD仅在满足阈值时显示该段3 (用于 command_execution_time)
POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN在此类目录中不显示 Git 状态~
POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY不检查大型存储库的 Git 状态-1
POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDSGit 状态的最大等待时间0.05

来源: config/p10k-lean.zsh472-486 config/p10k-lean.zsh544-554

特定段的参数

目录段

参数描述示例值
POWERLEVEL9K_DIR_FOREGROUND文本颜色31
POWERLEVEL9K_DIR_SHORTENED_FOREGROUND缩短部分的颜色103
POWERLEVEL9K_DIR_ANCHOR_FOREGROUND锚定目录的颜色39
POWERLEVEL9K_DIR_ANCHOR_BOLD将锚定目录加粗true
POWERLEVEL9K_SHORTEN_STRATEGY如何缩短长目录truncate_to_unique
POWERLEVEL9K_SHORTEN_DELIMITER指示缩短的字符``
POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER移除到标记之前的字符串false
POWERLEVEL9K_SHORTEN_DIR_LENGTH要保留的字符数1
POWERLEVEL9K_DIR_MAX_LENGTH目录的最大长度80
POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS为键入留出的最小列数40
POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT为键入留出的最小列百分比50
POWERLEVEL9K_DIR_HYPERLINK添加目录超链接false
POWERLEVEL9K_DIR_SHOW_WRITABLE显示可写指示符v3
POWERLEVEL9K_SHORTEN_FOLDER_MARKER锚定目录的标记文件(\.git|\.hg|package.json)

来源: config/p10k-lean.zsh208-293 config/p10k-classic.zsh217-289

Git 状态段

参数描述示例值
POWERLEVEL9K_VCS_CLEAN_FOREGROUND存储库干净时的颜色76
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND存储库已修改时的颜色178
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND存储库包含未跟踪文件时的颜色76
POWERLEVEL9K_VCS_BRANCH_ICON显示在分支名称前的图标\uF126
POWERLEVEL9K_VCS_UNTRACKED_ICON未跟踪文件的图标?
POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING禁用默认格式化true
POWERLEVEL9K_VCS_CONTENT_EXPANSION自定义内容格式化请参阅配置
POWERLEVEL9K_VCS_BACKENDS支持哪些 VCS 系统(git)
POWERLEVEL9K_VCS_LOADING_BACKGROUND加载时的背景8
POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY跳过大型存储库的状态检查-1
POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLORVCS 图标的颜色76

来源: config/p10k-lean.zsh343-513 config/p10k-rainbow.zsh355-504

状态段

参数描述示例值
POWERLEVEL9K_STATUS_EXTENDED_STATES启用扩展状态true
POWERLEVEL9K_STATUS_OK显示成功状态false
POWERLEVEL9K_STATUS_OK_FOREGROUND成功状态的颜色70
POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION成功图标
POWERLEVEL9K_STATUS_OK_PIPE显示管道成功状态true
POWERLEVEL9K_STATUS_ERROR显示错误状态false
POWERLEVEL9K_STATUS_ERROR_FOREGROUND错误状态的颜色160
POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION错误图标
POWERLEVEL9K_STATUS_ERROR_SIGNAL显示错误信号true
POWERLEVEL9K_STATUS_VERBOSE_SIGNAME使用详细的信号名称false
POWERLEVEL9K_STATUS_ERROR_PIPE显示管道错误状态true

来源: config/p10k-lean.zsh506-540 config/p10k-classic.zsh515-549

命令执行时间段

参数描述示例值
POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD显示的最少秒数3
POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION小数位数0
POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND文本颜色101
POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT时长格式d h m s

来源: config/p10k-lean.zsh542-554 config/p10k-classic.zsh551-563

提示符字符段

参数描述示例值
POWERLEVEL9K_PROMPT_CHAR_OK_VIINS_FOREGROUND上次命令成功时的颜色76
POWERLEVEL9K_PROMPT_CHAR_ERROR_VIINS_FOREGROUND上次命令失败时的颜色196
POWERLEVEL9K_PROMPT_CHAR_OK_VIINS_CONTENT_EXPANSION插入模式下的字符(成功)
POWERLEVEL9K_PROMPT_CHAR_ERROR_VIINS_CONTENT_EXPANSION插入模式下的字符(错误)
POWERLEVEL9K_PROMPT_CHAR_OK_VICMD_CONTENT_EXPANSION命令模式下的字符(成功)
POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE覆盖模式下显示不同字符true

来源: config/p10k-lean.zsh189-206 config/p10k-classic.zsh194-215

自定义段参数

对于任何段,您可以按照以下模式定义自定义参数

  1. 图标和内容扩展:更改内容的显示方式和图标

    • POWERLEVEL9K_SEGMENT_VISUAL_IDENTIFIER_EXPANSION - 自定义图标
    • POWERLEVEL9K_SEGMENT_CONTENT_EXPANSION - 自定义内容
  2. 条件显示:控制段何时出现

    • POWERLEVEL9K_SEGMENT_SHOW_ON_UPGLOB - 文件存在时显示
    • POWERLEVEL9K_SEGMENT_DISABLED - 完全禁用
  3. 自定义函数:定义自定义行为

    • 在您的配置中创建一个函数
    • 在内容扩展参数中引用它

来源: config/p10k-lean.zsh359-463 config/p10k-classic.zsh368-472 config/p10k-rainbow.zsh378-473

参数解析

Powerlevel10k 使用复杂的参数解析系统来确定某个设置应使用哪个值。

来源: internal/p10k.zsh474-508

解析顺序是

  1. 段状态特定参数: POWERLEVEL9K_DIR_NOT_WRITABLE_FOREGROUND
  2. 段特定参数: POWERLEVEL9K_DIR_FOREGROUND
  3. 全局参数: POWERLEVEL9K_FOREGROUND
  4. 默认值

实现自定义参数

要为现有段实现自定义参数

  1. 将以下内容添加到您的 ~/.p10k.zsh 文件中,在加载配置之后
  1. 对于复杂的自定义,请创建一个自定义格式化函数

来源: config/p10k-lean.zsh359-463 config/p10k-classic.zsh368-472

图标参数

图标定义在 internal/icons.zsh 中,并可以在您的配置中覆盖。使用的图标集取决于 POWERLEVEL9K_MODE 参数。

参数描述示例值
POWERLEVEL9K_MODE要使用的图标集nerdfont-complete
POWERLEVEL9K_ICON_PADDING图标后的空格nonemoderate
POWERLEVEL9K_VCS_BRANCH_ICONGit 分支图标\uF126
POWERLEVEL9K_LOCK_ICON不可写目录的图标
POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION自定义操作系统图标

Powerlevel10k 支持多种图标模式

  • nerdfont-complete - Nerd Fonts
  • nerdfont-v3 - Nerd Fonts 版本 3+
  • awesome-patched - Awesome Patched 字体
  • awesome-fontconfig - Awesome Font (带 fontconfig)
  • awesome-mapped-fontconfig - Awesome Font (带映射的 fontconfig)
  • flat - 类似于 awesome-patched

来源: internal/icons.zsh3-487 internal/icons.zsh489-681

结论

本文档提供了 Powerlevel10k 参数的全面参考。有关高级自定义,请参阅 config/ 目录中的示例配置,并探索 internal/ 目录中的源代码。

请记住,大多数参数都可以在您的 ~/.p10k.zsh 文件中设置,该文件通常是通过运行 p10k configure 创建的。