别局限于 Oh-My-Posh,试试 Rust 编写的 starship:极简超快且无限可定制的命令行提示符

近两年我电脑里面的命令行提示符都是用 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

更多配置详见:配置,也可以直接使用社区提供的配置文件

相关推荐
我要改名叫嘟嘟8 小时前
读《堂吉诃德》到最后,我舍不得堂吉诃德与桑丘
程序员
程序员老申12 小时前
我受够了在项目、域名、服务器、SSL 之间来回切换,于是开源了 Solo Workspace
程序员·开源
弗锐土豆14 小时前
自动化-程序员从抽象与具象的角度学习自动化
学习·程序员·自动化·抽象·具象
用户35761865971916 小时前
CodeBuddy 学习(5):Speckit 规约驱动开发
程序员
宋均浩16 小时前
20 分钟 → 3 分钟,CI/CD 性能调优实战(GitHub Actions + pytest + Docker)
程序员
JustHappy18 小时前
古法编程秘籍(五):什么是进程和线程?从软件到 CPU 的一次完整旅程
前端·后端·代码规范
DogDaoDao19 小时前
【GitHub】CodeGraph 深度解析:为 AI 编程代理构建预索引代码知识图谱
人工智能·程序员·github·知识图谱·ai编程·ai agent·codegraph
折哥的程序人生 · 物流技术专研20 小时前
【电商多平台电子面单对接实战|第二篇】抖音代发电子面单对接:从“面条代码”到整洁架构的涅槃之路
设计模式·架构·系统架构·单元测试·代码规范·单一职责原则
starrysky81021 小时前
Hermes Gateway重启慢到让人砸键盘:从journalctl到cProfile,三层根因逐层拆解实录
程序员·angular.js
_code_bear_21 小时前
如何设计 Agent 场景下的 Prompt
程序员·开源·设计