资讯动态

Starship Pure Preset:用一行命令复刻 Pure 的极简双行提示符

发布时间:2026/9/8 22:09:05 来源:尧图企业网站定制
Starship Pure Preset用一行命令复刻 Pure 的极简双行提示符【免费下载链接】starship☄️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!项目地址: https://gitcode.com/GitHub_Trending/st/starshipStarship 官方仓库为每一种 shell 预置了一套名为Pure preset的完整提示符配置目标是用 Starship 重新演绎经典 zsh 提示符 Pure 的外观与行为习惯信息集中在首行、提示符简洁独立干净而克制。本文以 docs/bn-BD/presets/pure-preset.md内容与 英文原版 一致为骨架结合其内嵌的 pure-preset.toml 以及仓库源码逐行讲解这份预置配置的结构、每个模块的作用并演示如何一键套用、验证结果与二次定制。读完你既能把它直接装进自己的 Starship也能举一反三地读懂任何一份 Starship 预置配置。Pure preset 是什么把 Starship 提示符改造成 Pure 风格在预设页面 docs/presets/README.md 中Pure Prompt 预置被描述为 “emulates the look and behavior of Pure”模拟 Pure 的外观与行为。它属于社区向 Starship 提交的预置配置集合Presets之一适合偏好极简风格、习惯 “状态信息一行 输入提示一行” 双行排布的老派 Prompt 用户。这份预置的核心设计可以概括为两点首行信息行由username、hostname、directory、git 相关模块和上一条命令耗时组成模块之间紧密相连、不加分隔符末行输入行只有python虚拟环境若有和character提示符箭头用紫色、红色、绿色区分命令成功、失败与 vim 普通模式。一键安装starship preset pure-preset官方给出的应用命令只有一行starship preset pure-preset -o ~/.config/starship.toml这条命令由starship preset子命令实现。从 src/main.rs 的 CLI 定义可以看出Preset子命令接受三个参数预置名称、可选的输出文件路径把配置写入文件而非标准输出以及列出全部预置名称的开关。命令入口随后调用 src/print.rs 中的preset_command传入--list时直接打印仓库内置的全部预置名称Preset::value_variants()枚举传入具体预置名时读取该预置的内嵌 TOML 内容然后写入-o指定的文件文件已存在时可通过 force 选项覆盖否则打印到标准输出校验预置是否正常的测试位于 src/print.rs其中的用例直接把docs/public/presets/toml/nerd-font-symbols.toml通过include_str!与命令输出对比——这说明预置内容的唯一事实来源就是 docs/public/presets/toml/ 目录下同名 TOML 文件文档展示、CLI 输出与测试基准三者在构建期保持一致。因此pure-preset实际落盘的内容等价于仓库中的 pure-preset.toml。运行完上面的命令后重启终端或exec $SHELL不同 shell 的初始化方式可参考 安装文档提示符就会立即切换为 Pure 风格。预置配置逐行拆解下面这段 TOML 是 pure-preset 的全部内容也是文章后续所有分析的对象来源docs/public/presets/toml/pure-preset.toml$schema https://starship.rs/config-schema.json format $username\ $hostname\ $directory\ $git_branch\ $git_state\ $git_status\ $cmd_duration\ $line_break\ $python\ $character [directory] style blue [character] success_symbol ❯ error_symbol ❯ vimcmd_symbol ❮ [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-black [cmd_duration] format $duration style yellow [jj_bookmark] format $bookmark($remote)$diverged( \\($overflow_count others\\)) style bright-black [python] format $virtualenv style bright-black detect_extensions [] detect_files []顶层format双行布局的关键format使用 TOML 多行基本字符串三引号每个模块末尾的反斜杠\是 TOML 的续行符它把模块之间的换行与空格全部吞掉使各段提示符首尾相接。因此实际渲染出来的结构是第一行$username$hostname$directory$git_branch$git_state$git_status$cmd_duration换行$line_break是显式的换行模块第二行$python可选$character提示符箭头。不难发现这份预置只改写了参与渲染的模块顺序username、hostname都没有配套的[username]、[hostname]小节——它们继承模块自身的内置默认行为例如仅在非常规用户名、SSH 登录等条件下出现$python的渲染条件则由后文[python]小节的规则决定。这种 “先让所有信息紧贴成行、再用$line_break让提示符另起一行” 的写法正是各类 Starship 预置复刻双行提示符的标准套路。[directory]蓝色目录[directory] style blue只把当前目录段的颜色设为蓝色目录的截断、加粗、路径替换等其余行为全部沿用 Starship 默认。因为首行多个模块之间没有空格配合蓝色目录可以在一屏内快速定位 “我在哪”。[character]紫色❯提示符[character] success_symbol ❯ error_symbol ❯ vimcmd_symbol ❮这是整份预置最点睛的一处用几何符号代替默认的❯空格并且三种场景全部定义为同款箭头、仅颜色不同——上一条命令执行成功❯紫色箭头上一条命令执行失败❯红色箭头处于vim 普通模式需要终端与 shell 支持 vim 模式检测❮绿色左向箭头。颜色参数既可以直接写 Starship 命名色也可以用(218)这样的 256 色索引或十六进制色值这份预置里两种写法都有。git 三件套分支、状态、操作进度Pure 提示符最大的价值在 Git 工作流中。预置把三个 git 模块的渲染压缩到极致[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去掉默认的 “on ” 前缀分支名以bright-black呈现紧跟目录之后形成 “蓝色目录 灰色分支” 的紧凑组合git_status六个变更状态conflicted / untracked / modified / staged / renamed / deleted的标记全部被覆盖为不可见的零宽字符使它们各自不再输出默认的字母如M、?、D而分组前的字面量*作为统一的 “有未提交变更” 指示符有 stash 时则以≡标识文件变更块按(218)上色、整体再叠加模块级cyan样式。工作区干净时对应内容为空模块不会产生多余噪音git_state正在进行 rebase / merge / cherry-pick 等操作时显示进度如(REBASING 1/2)风格同样是bright-black。这三个模块的实际渲染逻辑均要求当前目录位于 Git 仓库中对应的模块实现与默认配置可分别在 src/configs/git_branch.rs、src/configs/git_status.rs、src/configs/git_state.rs 中进一步对照。[cmd_duration]黄色命令耗时[cmd_duration] format $duration style yellow上一条命令执行超过阈值默认 2 秒后在首行末尾以黄色输出耗时如2s。格式字符串末尾保留了一个空格作为模块间的间隔。Starship 默认会给出人类友好的时长格式这里的配置只是收窄到只显示$duration并用黄色强调。[jj_bookmark]Jujutsu 书签支持[jj_bookmark] format $bookmark($remote)$diverged( \\($overflow_count others\\)) style bright-blackStarship 同时内置了对 Jujutsujj版本控制系统的支持。当你在 jj 仓库中工作时该模块会以bright-black显示当前书签及其远程、分叉与溢出计数信息使得这份纯风格预置在 jj 仓库下同样可用。[python]只在有虚拟环境时出现[python] format $virtualenv style bright-black detect_extensions [] detect_files []这里的处理比较微妙format只保留$virtualenv即不展示 Python 版本号只展示当前虚拟环境名把detect_extensions默认含py与detect_files默认含pyproject.toml、requirements.txt等全部清空相当于关掉了 “因为目录里存在 Python 工程标记或.py文件就自动点亮模块” 的常用触发路径让第二行保持绝对的干净。配合双行布局意味着普通场景下终端第二行只有一个孤零零的❯非常接近 Pure 的原始观感。参数速查与可复用经验配置项位置取值作用format顶层模块拼接串定义双行提示符的渲染顺序行尾\用于消除模块间空格style[directory]blue目录段颜色success_symbol[character]❯命令成功后的提示符error_symbol[character]❯命令失败后的提示符vimcmd_symbol[character]❮vim 普通模式提示符conflicted…deleted[git_status]零宽字符隐藏 git_status 模块默认的字母状态标记stashed[git_status]≡存在 stash 时的提示符号detect_extensions/detect_files[python][]关闭 Python 模块的工程文件触发检测需要特别提醒的一点是format 字符串里模块名后紧跟反斜杠的反直觉写法并非拼写错误而是有意为之——TOML 多行字符串的行尾反斜杠会折叠换行符。这是 Starship 各类双行预置中最高频出现的坑理解后你就能自如地控制提示符段之间的空隙。如何验证、预览与二次定制验证配置落盘执行starship preset pure-preset -o ~/.config/starship.toml后比对文件内容与仓库中的 docs/public/presets/toml/pure-preset.toml 是否一致这也是 src/print.rs 中单测所保证的行为。预览其他预置starship preset --list会列出全部可用预置名完整目录可查看 docs/presets/README.md每份预置都配有截图与独立的 TOML 文件。随时二次修改预置的本质是一份写入~/.config/starship.toml的普通配置。文件顶部$schema指向 config-schema.json配合支持该 schema 的编辑器即可获得补全与校验。想调整颜色直接改[character]、[git_status]的 style 或色值即可想把cmd_duration放到第二行只需调整顶层format中模块的相对顺序并重放$line_break。总而言之Pure preset 用不超过 55 行的 TOML 演示了 Starship “任意定制” 的核心魅力通过format编排 模块级style与符号覆盖你能在不动一行 Rust 代码的前提下把默认的多行富信息提示符收敛成极简的双行 Pure 风格而仓库中的 pure-preset.toml 与 src/print.rs 里的测试则共同保证了 “文档所见” 即 “命令所得” 的一致性。【免费下载链接】starship☄️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!项目地址: https://gitcode.com/GitHub_Trending/st/starship创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价