近两年我电脑里面的命令行提示符都是用 Oh-My-Posh,体验是蛮好的😄。最近看到了starship,感觉还不错,就果断切换过来(喜新厌旧😂)。
先看看两个提示符运行时的对比图,oh-my-posh 其实更简洁些,因为 starship 默认是在次行输入命令并且自动添加新行。 
终端提示符
在日常开发中,终端提示符(Prompt)虽然不起眼,但直接影响效率和体验。默认提示符通常只有当前路径、一个简单符号
但在实际开发中,我们更关心当前 Git 分支、是否有未提交代码、Node / Python 版本、执行耗时等,这类需求催生了一类工具:Prompt 引擎。其中比较常见的就是: Starship、oh-my-posh。
关于 starship
Starship 是一个用 Rust 编写的跨 Shell 提示符工具,官方宣称:适用于任何 shell 的极简、超快且无限可定制的提示符!

Starship 把 Prompt 拆成多个"模块",例如:
- 目录(directory)
- Git 分支(git_branch)
- 运行时(nodejs / python)
- 执行时间(cmd_duration)
每个模块可以独立配置:
toml
[git_branch]
symbol = "🌱 "
[nodejs]
format = "via [$version]($style)"
这种方式的好处是:把"提示符"从脚本逻辑,变成"配置驱动 UI"。
安装
我直接使用 cargo 进行安装 cargo install starship --locked,完成后检查下版本。
shell
➜ starship -V
starship 1.24.2
集成到 PowerShell
我用的是 PowerShell 7
编辑C:\Users\{用户名}\Documents\PowerShell\Microsoft.PowerShell_profile.ps1,写入如下内容:
shell
# 使用 oh-my-posh
#oh-my-posh init pwsh --config 'C:\Users\admin\AppData\Local\Programs\oh-my-posh\themes\tonybaloney.omp.json' | Invoke-Expression
Invoke-Expression (&starship init powershell)
配置示例
安装 starship 后,使用的默认配置,如需定制需创建配置文件~/.config/starship.toml:
shell
mkdir -p ~/.config && touch ~/.config/starship.toml
插入空行
toml
# 在提示符之间插入空行
add_newline = true