文章目录Starship真香一个提示符管所有shell57k Star不是白来的Starship真香一个提示符管所有shell57k Star不是白来的Starship 是一款跨 shell 的终端提示符工具用 Rust 语言编写GitHub 上拿到了 57k Star默认的终端提示符大多时候就是一个$或后面跟当前路径。信息有限视觉上也不怎么讲究。开发者一天里有相当一部分时间对着终端提示符上每多一条信息就省一次敲命令的功夫。Starship 做的事就是把这一行变成信息面板git 状态、语言版本、运行环境全部直接摆出来。它的设计思路是不管你用 bash、zsh、fish、PowerShell 还是 cmd写完一份配置所有 shell 通用。从 zsh 换到 fish显示效果完全一致零额外适配成本。Rust 编译成二进制响应够快不少 shell 美化方案是在 shell 脚本里拼字符串模块加多了启动就拖沓。Starship 另走了一条路用 Rust 编译为原生二进制全部计算在独立进程里完成把拼好的字符串一次性返回给 shell。两种方案的区别在于执行模型shell 脚本方案每次渲染提示符都要在当前 shell 进程里串行跑所有模块逻辑模块之间相互阻塞。Starship 把所有模块并行处理完再统一输出避免了排队问题。实际体感是 oh-my-zsh 挂十几个插件启动会拖节奏Starship 开同样数量模块响应速度没变化。内存占用在几 MB 级别在服务器上也有人装。Starship 2019 年发布持续维护至今版本迭代和兼容性经过了时间的检验。提示符上能显示哪些信息Starship 的提示符由若干模块拼成每个模块管一类信息Git 模块当前分支名、工作区是否干净、待推送的 commit 数量、是否在 merge 或 rebase 中语言版本Node.js、Python、Rust、Go、Java、PHP 等只在对应用的项目目录里出现运行环境Docker 上下文、Kubernetes 当前 context 和 namespace、AWS profile、conda/venv 环境名状态标记上一条命令退出码非零时显示、命令耗时超阈值才显示、后台任务数其他当前 shell 名称、用户名加主机名、电池电量、时间戳这些模块全部是条件触发的。cd 进有.git的目录git 模块冒出来cd 离开自动消失。不需要在配置里写任何路径规则。实际效果是进一个 Node.js 项目提示符末尾出现 Node 版本号切到 Python 项目会显示 conda 或 venv 环境名push 完代码提示符上的待推送标记随之消除。全程不需要手动调任何东西。怎么装一行命令curl-sShttps://starship.rs/install.sh|shWindows 可走 winget、Scoop、Chocolatey。macOS 走 Homebrew。Linux 各主流发行版都进了官方仓库apt、dnf、pacman、apk 等均可。也支持从 crates.io 通过cargo install安装。提前准备一个 Nerd Font 字体否则图标会显示成乱码。推荐 FiraCode Nerd Font 或 JetBrainsMono Nerd Font阅读体感比较舒服。装完后在 shell 配置文件中加一行初始化# zsheval$(starship initzsh)# fishstarship init fish|source# PowerShellInvoke-Expression(starship init powershell)配置文件放在~/.config/starship.tomlTOML 格式。TOML 比 JSON 更适合手写配置没有花括号和引号的噪音Starship 选它做配置格式降低了上手成本# 关掉 nodejs 模块 [nodejs] disabled true # 调整模块排列顺序 format $all $character # 自定义 git 分支显示 [git_branch] format on [$branch](bold purple) 每个模块支持的配置项、可用的样式变量官网文档都列了参数和示例。官网「Presets」页面汇总了社区用户分享的成品配置可以直接用。跨 shell、跨平台支持 10 种 shellbash、zsh、fish、PowerShell、cmd配合 Clink、nushell、elvish、ion、tcsh、xonsh。Windows、macOS、Linux 三端行为统一。同类工具里覆盖面是第一档。Demo 效果如下小结终端里待的时间越长Starship 的价值越明显。不用反复敲git status和node -v状态直接浮在提示符上。安装省事配置有文档参考性能不影响体验。几 MB 的内存开销让它在生产服务器上也有人用。57k Star 这个数字说明它切中了终端使用者的实际需求。-v状态直接浮在提示符上。安装省事配置有文档参考性能不影响体验。几 MB 的内存开销让它在生产服务器上也有人用。57k Star 这个数字说明它切中了终端使用者的实际需求。