ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Starship Pure Preset 完全指南:用一条命令还原极简 Pure 提示符

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本篇指南围绕 Starship 官方预设之一Pure Preset展开它用于在任意 shell 中模拟经典极简提示符 Pure 的外观与行为紧凑的单行布局、基于颜色的 Git 状态指示、以及一个多色箭头提示符。读完本文你将掌握通过starship preset一键启用该预设的方法、完整 TOML 配置的逐段语义以及它如何与 Starship 源码中的模块实现相互印证并具备在此基础上自由微调的能力。Starship Pure 预设运行效果Pure Preset 是什么Pure 是一款以极简著称的命令行提示符最初面向 zsh后也有 fish 等移植版本其设计哲学是提示符中不堆砌无意义的装饰只保留当前路径、Git 分支与状态、命令耗时等必要信息并用颜色而非文字来传达状态。Starship 的 Pure Preset 通过一份完整的starship.toml配置把这一外观与行为复刻到 Starship 支持的所有 shellbash、zsh、fish、PowerShell、nu、ion、tcsh、xonsh、elvish、lua 等之上这是比原版 Pure 更广的适用范围。该预设是官方预设集合的一员其余预设Nerd 字体符号、No Nerd Fonts、Bracketed Segments、Tokyo Night、Gruvbox Rainbow 等可参见 docs/zh-CN/presets/README.md。一键启用starship preset 命令详解启用 Pure Preset 只需一条命令starship preset pure-preset -o ~/.config/starship.toml执行后预设的完整配置会被写入~/.config/starship.toml重启终端或在当前会话重新执行初始化脚本即可生效。对于 Windows PowerShell路径通常为$HOME\.config\starship.toml也可以直接输出到当前目录再手动移动到 Starship 的配置位置。该命令背后由 Starship 的preset子命令实现其 CLI 定义位于 src/main.rs支持以下参数参数全称作用pure-presetname要输出的预设名称枚举值来自内置预设列表-o file--output将预设内容写入指定文件而不是标准输出与--list互斥-f--force当输出文件已存在时强制覆盖必须与-o搭配使用-l--list列出所有可用预设名称命令的底层实现位于 src/print.rspreset_command通过shadow::get_preset_content从编译进二进制的文档资源中取出预设 TOML然后交给crate::utils::write_file_atomic做原子写入——先写临时文件再重命名避免中途断电导致配置文件损坏若未指定-o则原样输出到标准输出方便你starship preset pure-preset starship.toml自行重定向。源码还配套了完整的单元测试见 src/print.rs覆盖列出预设不 panic、每个预设都能正常输出、写入文件后内容与内置资源一致以及已存在文件必须-f才能覆盖等场景。此外完整的预设 TOML 也以独立文件形式存放在仓库中docs/public/presets/toml/pure-preset.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顶层 format提示符的组装顺序format定义了提示符从左到右的模块顺序username→hostname→directory→git_branch→git_state→git_status→cmd_duration→line_break→python→character。这里有一个容易被忽视的 TOML 细节字符串用的是三引号多行基本字符串每行行尾的\在 TOML 规范中是行继续转义——反斜杠连同换行符及下一行行首空白会被一并丢弃。因此最终传给 Starship 的 format 实际上是一整行紧凑的模块序列仅在line_break处换行。这与 Pure 的典型布局一致主提示符单行显示用户名、主机名、目录、Git 信息、耗时在同一行命令执行耗时之后才另起一行展示 Python 虚拟环境与输入箭头。$schema指向 Starship 的 JSON Schema对应仓库中的 docs/public/config-schema.json让支持 Schema 的编辑器在编辑此文件时获得配置项补全与校验。$username与$hostname默认仅在必要时显示例如通过 SSH 登录、用户名与预期不符时从而保持本机日常使用时的极简观感。directory蓝色目录[directory] style blue目录模块的文本样式设为蓝色。注意这里没有设置truncation_length、fish_style_pwd或repo_root_style等参数即沿用 Starship 默认的截断与省略行为仅在颜色上贴合 Pure 的蓝色路径风格。character多色箭头提示符[character] success_symbol ❯ error_symbol ❯ vimcmd_symbol ❮这是 Pure 最标志性的视觉元素之一命令成功时显示紫色❯上一条命令以非零状态码退出时箭头变为红色提示你上次出错了在支持 vi 模式的 shell 中进入普通模式Normal/Command 模式时箭头切换为绿色❮方向变化直观提示当前输入模式。三个符号均采用符号的语法颜色使用 Starship 内置的命名色purple / red / green也可替换为十六进制色值。git_branch低调的分支名[git_branch] format $branch style bright-black分支模块只渲染分支名本身去掉 Starship 默认的 on 前缀与图标颜色使用bright-black亮黑/灰白使其弱化在蓝色目录之后保持主次分明。git_status用颜色与符号表达 Git 状态[git_status] format [(*$conflicted$untracked$modified$staged$renamed$deleted) ($ahead_behind$stashed)]($style) style cyan conflicted ​ untracked ​ modified ​ staged ​ renamed ​ deleted ​ stashed ≡这一段是 Pure 风格的精髓所在format整体以cyan渲染先是一个字面量*紧接各状态符号当仓库存在任何未提交变化conflicted / untracked / modified / staged / renamed / deleted时*作为有改动标记出现——这正是 Pure 用单个*表示 dirty 的做法六个状态符号全部被显式置为空字符串。在 Starship 的git_status模块实现中符号对应的配置项决定该状态存在时渲染什么字符计数格式化逻辑见 src/modules/git_status.rs 与 src/modules/git_status.rs置空后各类改动不再输出?//~/-等默认符号全部收敛为统一的*stashed ≡让 stash 列表以数学等价符号≡呈现其渲染同样经由git_status模块的stashed配置与get_stashed()计数逻辑见 src/modules/git_status.rs$ahead_behind保留默认行为本地领先远程时显示↑N落后时显示↓N分支无分歧时不显示仅在确实存在差异时出现。截图中的实际效果即为分支名trunk之后跟随一个*有未提交更改、≡存在 stash与↑本地领先提交完成后*随之消失——视觉噪音被压到最低。git_state合并/变基等中间状态[git_state] format \($state( $progress_current/$progress_total)\) style bright-black当仓库处于REBASING、MERGING、CHERRY-PICK、BISECTING等中间操作状态时以亮黑括号形式显示状态名若操作带进度如变基进行到第 3/5 步还会附带$progress_current/$progress_total进度计数。平时不渲染不影响极简外观。cmd_duration黄色命令耗时[cmd_duration] format $duration style yellow命令执行超过阈值Starship 默认min_time为 2 秒后以黄色显示耗时并自带一个尾随空格与后续内容分隔。Pure 原版在耗时较长时同样会标注时间这一配置还原了该行为且颜色醒目但克制。jj_bookmarkJujutsu 书签支持[jj_bookmark] format $bookmark($remote)$diverged( \\($overflow_count others\\)) style bright-black除 Git 外该预设还覆盖了 Jujutsujj版本控制系统在 jj 仓库中显示当前书签名有远程对应时附远程名书签分叉diverged时显示相应标记书签数量溢出时以(N others)归纳。同样使用亮黑配色与git_branch保持一致。对应的模块实现位于 src/modules/jj_bookmark.rs配置项定义见 src/configs/jj_bookmark.rs。python仅显示虚拟环境[python] format $virtualenv style bright-black detect_extensions [] detect_files []这是对极简的又一次取舍默认的 Python 模块会扫描requirements.txt、pyproject.toml、.py文件等来判定是否进入 Python 项目上下文本预设将detect_extensions与detect_files全部置空意味着只有激活了虚拟环境时模块才会出现且只显示虚拟环境名不显示 Python 版本号与 Pure 只提示 venv 的做法一致。行为效果一览综合以上配置启用 Pure Preset 后你将得到这样的体验日常命令用户名主机名 蓝色目录 分支名 紫色❯有未提交更改分支名后追加青色*存在 stash 时追加≡与远程不同步时显示↑N/↓N上一条命令失败箭头变红一目了然慢命令黄色耗时提示激活 Python 虚拟环境换行后在箭头前显示亮黑的虚拟环境名颜色承担了绝大多数语义传达文字符号被压缩到最少——这正是 Pure 设计哲学在 Starship 中的完整落地。在预设基础上继续微调starship preset输出的是标准 TOML你可以放心直接编辑~/.config/starship.toml做个性化调整例如更换箭头颜色success_symbol ❯或使用十六进制[❯](#00ff88)调整目录显示深度为[directory]增加truncation_length 3关闭主机名/用户名在format中移除$username\与$hostname\两段为耗时设置更敏感的阈值[cmd_duration] min_time 1000单位毫秒。与其他预设的关系Pure Preset 是官方预设集合中对极简与信息密度平衡的代表作。若你偏好不同的视觉路线可对照参考同一目录下的其他预设文档例如保留完整符号的 Nerd 字体符号预设、完全脱离 Nerd Font 的 No Nerd Fonts 预设、以括号分隔段落的 Bracketed Segments 预设以及强调配色的 Tokyo Night 与 Gruvbox Rainbow。所有预设均可用同一套starship preset 名称 -o ~/.config/starship.toml流程一键切换。【免费下载链接】starship☄️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!项目地址: https://gitcode.com/GitHub_Trending/st/starship创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表