Starship Pure Preset 配置指南:用一行命令复刻 Pure 极简提示符

发布时间:2026/9/10 7:50:55
Starship Pure Preset 配置指南:用一行命令复刻 Pure 极简提示符 Starship Pure Preset 配置指南用一行命令复刻 Pure 极简提示符【免费下载链接】starship☄️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!项目地址: https://gitcode.com/GitHub_Trending/st/starship导读Pure Preset 是 Starship 官方预设集合中专门复刻 Pure一款经典的 zsh 极简提示符外观与行为的配置方案。它通过一段精简的 TOML 配置将 Starship 默认的多行复杂提示符收敛为用户名 路径 Git 状态 命令耗时 单行输入符的极简结构同时完整保留 Starship 的分段渲染与主题能力。读完本文你将掌握 Pure Preset 的安装、写入、覆盖与校验方法理解其每一个配置项背后的模块机制并能基于它自由定制属于自己的极简提示符。什么是 Pure PresetPure 是社区中广为人知的 zsh 极简提示符其设计哲学是少即是多不展示冗余装饰只保留执行命令所需的最少信息。Starship 的 Pure Preset 用纯 TOML 配置在 Starship 引擎上还原了这一风格——无需安装任何外部插件只要套用预设即可获得相同的极简观感。从 docs/presets/README.md 可以看到Pure Prompt 预设的定位是模拟 Pure 的外观与行为This preset emulates the look and behavior of Pure它是 Starship 社区预设集合Nerd Font Symbols、No Nerd Fonts、Bracketed Segments、Tokyo Night 等中的一员。预设本质上是预先编写好的starship.toml配置片段由社区提交维护用户可通过官方starship preset命令一键获取。安装 Pure Preset原文档给出的核心安装命令只有一行starship preset pure-preset -o ~/.config/starship.toml这条命令的含义是将内置的pure-preset配置写入~/.config/starship.toml-o即--output选项指定输出文件路径。写入成功后重新加载 shell 即可看到效果例如执行exec $SHELL或重启终端。需要说明的几点覆盖行为如果~/.config/starship.toml已存在直接运行上述命令会因目标文件存在而报错。此时需要追加-f/--force参数强制覆盖starship preset pure-preset -o ~/.config/starship.toml -f这一点与 src/main.rs 中定义的 CLI 结构一致--force选项明确标注为requires output即只有配合-o使用时才合法。查看与输出不加-o时预设内容会直接打印到 stdout配合--list可以列出所有可用预设名称starship preset --list starship preset pure-preset离线获取本文档对应的原始 TOML 也以文件形式存放在仓库中docs/public/presets/toml/pure-preset.toml可以手动查看或下载后自行放置到配置路径。从源码看preset命令的完整参数为starship preset NAME [-o FILE] [-f] [--list]。其中预设名称通过ValueEnum枚举校验--list与-o互相冲突见 src/main.rs实现细节位于 src/print.rs 的preset_command函数它通过shadow::get_preset_content读取随二进制打包的预设内容再由write_file_atomic原子写入目标文件而 src/print.rs 中的单元测试则验证了预设列表非空各预设可正常输出输出到文件与仓库源文件内容完全一致等行为。配置逐项解读pure-preset.toml的核心是一个自定义的顶层format外加对若干模块的精简覆写。下面逐段拆解。顶层 format极简的渲染顺序format $username\ $hostname\ $directory\ $git_branch\ $git_state\ $git_status\ $cmd_duration\ $line_break\ $python\ $character这段多行字符串定义了提示符从左到右的渲染顺序$username/$hostname用户名与主机名配合各自的format控制显示细节$directory当前目录路径$git_branch/$git_state/$git_statusGit 分支、Git 操作状态、文件变更状态$cmd_duration上一条命令的耗时$line_break换行将输入行与信息行分开$pythonPython 虚拟环境$character输入提示符符号。每行末尾的反斜杠\是 TOML 多行字符串的续行符在渲染层面则让各个模块紧挨排列不插入多余空格。与原文档提供的 TOML 完全一致的是这个 format 只保留了 9 个模块——Starship 默认格式中的$package、$rust、$nodejs等大量运行时模块都被排除这正是极简的根源。注意该预设还额外引入了$jj_bookmark模块见下但顶层 format 未将其显式列出。character极简的核心视觉[character] success_symbol ❯ error_symbol ❯ vimcmd_symbol ❮success_symbol上一条命令成功退出时显示的符号紫色❯error_symbol上一条命令失败时显示的符号红色❯vimcmd_symbol进入 vim 命令模式shell 处于 vi 模式时显示的符号绿色❮。这是 Pure 最标志性的单字符提示符效果命令成功与否通过颜色而非文字传达。方括号内为符号圆括号内为颜色。directory蓝色路径[directory] style blue将目录路径统一渲染为蓝色。Starship 的directory模块还支持truncation_length截断长度、truncation_symbol截断符号默认…等参数这里未覆盖即使用默认值。git_branch / git_status / git_stateGit 状态三件套[git_branch] format $branch style bright-black [git_status] format [(*$conflicted$untracked$modified$staged$renamed$deleted) ($ahead_behind$stashed)]($style) style cyan conflicted ​ untracked ​ modified ​ staged ​ renamed ​ deleted ​ stashed ≡ [git_state] format \($state( $progress_current/$progress_total)\) style bright-blackgit_branch只显示分支名$branch用亮黑色bright-black渲染不显示默认的on字样与图标git_status将冲突、未跟踪、已修改、已暂存、已重命名、已删除等符号全部设为零宽空格即空字符串从而把 Git 状态信息收敛进一个圆括号内(*...)表示有未处理变更(≡)表示有 stash$ahead_behind显示与上游的领先/落后整体用青色cyan括号内数字218是 ANSI 256 色中的特定青色git_state仅在 rebase/merge 等操作进行中显示(状态 进度)例如(REBASING 3/10)同样用亮黑色并包裹在圆括号中。这种零宽字符 单括号聚合的手法正是 Pure 极简风格的实现关键正常工作时几乎看不到 Git 信息只有存在变更时才以紧凑形式出现。cmd_duration命令耗时[cmd_duration] format $duration style yellow在每次命令执行后显示耗时黄色例如3s。默认配置下 Starship 的cmd_duration仅在命令耗时超过min_time默认 2000ms时才渲染这一行为在此预设中同样生效。jj_bookmarkJujutsu 书签支持[jj_bookmark] format $bookmark($remote)$diverged( \\($overflow_count others\\)) style bright-black这是原 TOML 中隐藏的彩蛋模块。jj_bookmark用于在 Jujutsujj仓库中显示当前书签。根据 docs/config/README.md 的说明该模块会在当前目录处于 Jujutsu 仓库时读取 | -中的书签并优先展示的过滤后书签。此处的 format 展示了$bookmark书签名称$remote书签所属 remote$diverged存在发散diverged书签时的符号$overflow_count超出显示上限时其余书签的数量N others。同样以bright-black低调渲染避免破坏极简氛围。python虚拟环境标识[python] format $virtualenv style bright-black detect_extensions [] detect_files []format只显示虚拟环境名$virtualenv亮黑色不显示 Python 版本号detect_extensions []与detect_files []清空模块的默认触发条件。根据 docs/config/README.md 关于检测机制的说明detect_extensions匹配文件扩展名、detect_files匹配文件名两者均支持以!开头的负向匹配这里将两者置空意味着模块不会因为目录中出现.py文件或requirements.txt等而自动出现只在虚拟环境激活时显示。应用与自定义扩展手动替换配置如果不希望覆盖现有配置可以把pure-preset.toml的内容合并进已有的~/.config/starship.toml或使用 Starship 的 include 机制引用其他文件。也可以直接复制 docs/public/presets/toml/pure-preset.toml 的内容到你的配置文件中。基于 Pure 继续定制Pure Preset 只是一个起点你可以基于它继续叠加 Starship 的模块与主题能力在顶层format中追加$git_commit、$rust、$nodejs等模块按需恢复运行时信息修改success_symbol的符号与颜色如➜为directory增加truncation_length 3限制路径显示深度打开$fill模块将提示符分成两段参考 docs/advanced-config/README.md 中关于主题样式的进阶说明为各模块更换配色。每一次修改只需编辑~/.config/starship.toml并重新加载 shell 即可生效无需重编译。小结Pure Preset 通过一段不足 60 行的 TOML就完整复刻了 Pure 提示符的极简美学单字符彩色输入符、蓝色路径、聚合式的 Git 状态、隐藏的 Jujutsu 书签以及仅在有 Python 虚拟环境时出现的标识。它同时证明了 Starship无限可定制的设计哲学——同一套渲染引擎通过配置即可呈现完全不同的提示符风格。安装命令starship preset pure-preset -o ~/.config/starship.toml已为你准备好剩下的就是加载你的新提示符开始体验。相关资源预设总览Pure Preset 原文档预设 TOML 源文件Starship 配置参考进阶配置指南preset 命令 CLI 定义preset 命令实现与测试【免费下载链接】starship☄️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!项目地址: https://gitcode.com/GitHub_Trending/st/starship创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考