尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Starship No Runtime Versions 预设:在容器与虚拟化环境中隐藏语言运行时版本号
Starship No Runtime Versions 预设在容器与虚拟化环境中隐藏语言运行时版本号【免费下载链接】starship☄️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!项目地址: https://gitcode.com/GitHub_Trending/st/starshipStarship 的No Runtime Versionsno-runtime-versions预设通过精简各语言模块的format配置让提示符只展示语言图标而不显示具体的运行时版本号。它专门面向在容器Container或虚拟化环境Virtualized Environments中工作的开发者——在这些环境里语言运行时版本通常由镜像或虚拟环境决定提示符里堆叠一串版本号既占空间又无实际意义。阅读本文后你将掌握该预设的安装命令、完整 TOML 配置含义并能从源码层面理解版本号隐藏背后的格式化机制进而自行定制属于自己的精简提示符。No Runtime Versions 预设效果截图什么是 No Runtime Versions 预设在 Starship 的预设体系中No Runtime Versions 属于社区提交的配置集合之一。它的核心思想非常简单隐藏语言运行时的版本。默认情况下Starship 的 Python、Node.js、Rust 等模块会同时显示语言图标与版本号例如via v3.8.0 via ⬢ v18.0.0而应用 No Runtime Versions 预设后版本号部分被整体移除只保留图标与连接词via via ⬢从 预设总览页 的官方描述来看该预设尤其推荐给以下两类用户容器环境用户镜像中已经锁定了运行时版本例如python:3.12-slim镜像提示符再显示一遍版本是冗余信息虚拟化/沙箱环境用户版本由虚拟环境管理器如 pyenv、nvm或沙箱工具决定提示符中保留版本号既增加字符宽度也影响提示符渲染速度。安装与启用一行命令应用预设No Runtime Versions 预设的官方文档给出了标准的应用方式starship preset no-runtime-versions -o ~/.config/starship.toml该命令将no-runtime-versions预设的 TOML 内容直接写入~/.config/starship.toml覆盖原有配置。在 CLI 入口定义 中可以看到starship preset子命令支持的完整参数参数含义说明name位置参数预设名称必填除非使用了--list预设名由value_enum约束必须是内置预设之一-o, --output PATH输出文件路径将预设写入指定文件而非标准输出与--list互斥-f, --force强制覆盖仅在与--output同时使用时生效用于覆盖已存在的输出文件-l, --list列出全部预设名只打印内置预设列表不输出配置内容例如先查看内置预设清单再确认no-runtime-versions是否在列starship preset --list若希望在不覆盖现有配置的情况下查看预设内容可以省略-o直接输出到终端starship preset no-runtime-versions在 preset_command 的实现 中可以看到当指定--output时预设内容通过write_file_atomic原子写入目标文件未指定时则写入标准输出。预设内容由shadow::get_preset_content从编译进二进制的预设清单中读取因此使用该命令无需联网也不会依赖仓库文件路径。此外官方文档同时提供了手动下载方式点击下载 no-runtime-versions.toml将下载的 TOML 内容保存为~/.config/starship.toml即可达到相同效果。这种方式适合在无法执行starship preset命令如版本过旧或想先审阅内容的场景下使用。完整配置逐模块解析应用预设后~/.config/starship.toml将被写入以下内容这是该预设的完整定义源文件位于 no-runtime-versions.toml$schema https://starship.rs/config-schema.json [bun] format via $symbol [buf] format with $symbol [c] format via $symbol($name) [cmake] format via $symbol [cobol] format via $symbol [cpp] format via $symbol($name) [crystal] format via $symbol [daml] format via $symbol [dart] format via $symbol [deno] format via $symbol [dotnet] format $symbol( $tfm ) [elixir] format via $symbol [elm] format via $symbol [erlang] format via $symbol [fennel] format via $symbol [fortran] format via $symbol [gleam] format via $symbol [golang] format via $symbol [gradle] format via $symbol [haskell] format via $symbol [haxe] format via $symbol [helm] format via $symbol [java] format via $symbol [julia] format via $symbol [kotlin] format via $symbol [lua] format via $symbol [maven] format via $symbol [meson] format via $symbol [mojo] format with $symbol [nim] format via $symbol [nodejs] format via $symbol [ocaml] format via $symbol(\($switch_indicator$switch_name\) ) [odin] format via $symbol [opa] format via $symbol [perl] format via $symbol [php] format via $symbol [pixi] format via $symbol($environment ) [pulumi] format via $symbol$stack [purescript] format via $symbol [python] format via $symbol [quarto] format via $symbol [raku] format via $symbol [red] format via $symbol [rlang] format via $symbol [ruby] format via $symbol [rust] format via $symbol [scala] format via $symbol [solidity] format via $symbol [swift] format via $symbol [typst] format via $symbol [vagrant] format via $symbol [vlang] format via $symbol [xmake] format via $symbol [zig] format via $symbol这份配置覆盖了 Starship 内置的 50 个语言与工具链模块。逐项解读其设计规律1. 大多数模块采用连接词 图标的极简格式如 Python、Node.js、Rust 等绝大多数模块都统一为[python] format via $symbol其中via是 Starship 默认的模块连接词$symbol表示以模块自带样式渲染图标。相比默认格式via $version这里只删除了$version变量其余样式与符号保持不变因此提示符风格与默认配置完全一致只是信息更精简。2. 少数模块保留了必要上下文变量并非所有模块都只保留图标个别模块因功能需要保留了少量关键信息[c]与[cpp]format via $symbol($name)保留编译器名称如gcc、clang因为 C/C 场景下区分编译器比版本号更有价值[dotnet]format $symbol( $tfm )保留目标框架Target Framework Moniker如net8.0框架信息直接决定代码运行目标属于必要上下文[ocaml]保留$switch_indicator与$switch_name用于显示当前 Opam switch[pixi]保留$environment显示当前 pixi 环境名[pulumi]保留$stack显示当前 Pulumi 栈名。这些模块的共同特点是所保留的变量描述的是当前工作环境而非运行时版本号与预设只隐藏版本、不隐藏环境信息的设计目标一致。3. 连接词保持默认绝大多数模块沿用默认的via少数模块保持各自的默认连接词如buf使用with、mojo使用with、dotnet不使用连接词。这意味着应用预设后提示符的可读性不会受影响。版本号为什么会被隐藏格式化机制的源码原理要深入理解这份配置需要了解 Starship 模块渲染的核心机制。以 Python 模块为例在 python.rs 的模块实现 中可以看到let parsed StringFormatter::new(config.format).and_then(|formatter| { formatter .map(|variable| match variable { version { // 只有 format 中引用 $version 时才会执行版本探测 let python_version get_python_version(context, config)?; VersionFormatter::format_module_version( python_version, config.version_format, ) } // ... }) });这段代码揭示了一个关键事实$version变量的求值是被动触发的。StringFormatter解析config.format时只有格式字符串中出现了version变量get_python_version才会真正执行——而该函数会调用python --version之类的命令来探测版本见 get_python_version 实现。因此当预设把format改为via $symbol后StringFormatter在格式字符串中找不到version变量版本探测命令如python --version、node --version根本不会被执行不仅版本号不出现在提示符中还省去了每次渲染提示符时执行外部命令的开销。这一点对容器/虚拟化环境尤为重要在容器中每次打开 shell 提示符都要为十几个语言模块各执行一次版本探测命令会显著拖慢提示符渲染。No Runtime Versions 预设相当于一次性关掉了所有语言模块的版本探测让提示符渲染路径上不再有这些外部命令调用契合 Starship极速提示符blazing-fast的设计定位。从 preset_command 的单元测试 也可以看到Starship 团队对预设命令的正确性、文件输出、--force覆盖等行为都有自动化测试保障意味着starship preset no-runtime-versions -o ~/.config/starship.toml在不同平台上都能获得一致、可靠的输出。手动定制按需增减要隐藏的模块如果你不需要隐藏全部模块只需在上述 TOML 基础上做局部调整。例如只隐藏 Python 版本、保留 Node.js 版本[python] format via $symbol [nodejs] format via ⬢ $version # 恢复默认的版本显示反之如果某个未被预设覆盖的模块也想隐藏版本例如[git_commit]、[time]等非运行时模块本身不含版本变量无需处理可以查阅该模块在 src/configs 目录下的默认配置找到其format定义后移除$version即可。恢复默认配置的方法也很简单备份现有配置后使用内置命令还原cp ~/.config/starship.toml ~/.config/starship.toml.bak starship preset plain-text-symbols -o ~/.config/starship.toml # 或其他你想要的预设也可以直接用文本编辑器打开~/.config/starship.toml删除[python]等段落Starship 对未配置的模块会自动回退到默认格式。修改配置后重新打开终端或执行exec $SHELL即可生效。总结No Runtime Versions 预设是 Starship 预设体系中减法思想的典型代表面向场景明确容器、虚拟化、沙箱环境中运行时版本由环境决定提示符无需重复展示实现方式优雅通过移除各模块format中的$version变量实现同时保留了$symbol、$name、$tfm等必要上下文附带性能收益从 python.rs 的源码可以确认$version缺失时版本探测命令根本不会执行减少了每次渲染提示符的系统调用开销可逆可定制starship preset命令支持--list、--output、--force等参数见 CLI 定义配合备份即可随时切换或还原。如果你的日常工作离不开容器或虚拟环境这个预设是让提示符回归简洁、提速渲染的即插即用方案。更多社区预设可参见 预设总览 及其越南语版本 Mẫu thiết lập预设总览。【免费下载链接】starship☄️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!项目地址: https://gitcode.com/GitHub_Trending/st/starship创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

SAP SFP生成PDF表单:建模到Driver Program调用全流程

SAP SFP生成PDF表单:建模到Driver Program调用全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/11 5:37:47
CMSIS-5架构深度解析:嵌入式底层契约与分层治理实践

CMSIS-5架构深度解析:嵌入式底层契约与分层治理实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/11 5:37:47
【Springboot毕设全套源码+文档】基于 SpringBoot 的非遗信息交流平台的设计与实现 基于 SpringBoot 的非遗文创交流交易平台(丰富项目+远程调试+讲解+定制)

【Springboot毕设全套源码+文档】基于 SpringBoot 的非遗信息交流平台的设计与实现 基于 SpringBoot 的非遗文创交流交易平台(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

📅 2026/9/11 5:32:47
MORE NEWS

更多资讯

📰

Physical AI边缘部署实战:模型量化与TensorRT在Jetson上的优化

做自动驾驶泊车、工业质检、园区巡检这类 Physical AI 项目时,很多人一开始都习惯把视频流传回云端,让服务器跑模型,再把结果返回设备端。这个架构在 demo 阶段确实没毛病,但一上线就会发现两个要命的问题:延迟不可控&…

📰

Sunshine 首次启动 macOS 时如何授权屏幕录制与麦克风并配置系统音频采集?

Sunshine 首次启动 macOS 时如何授权屏幕录制与麦克风并配置系统音频采集? 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 在 macOS 上安装 Sunshine 后,第…

📰

使用 datamodel-code-generator 从 JSON Schema 与 OpenAPI 生成 Pydantic 模型:实战与漂移治理

使用 datamodel-code-generator 从 JSON Schema 与 OpenAPI 生成 Pydantic 模型:实战与漂移治理 【免费下载链接】pydantic Data validation using Python type hints 项目地址: https://gitcode.com/GitHub_Trending/py/pydantic 本篇技术指南围绕 Pydantic…

📰

Duix.Avatar 开源数字人克隆工具:10秒视频离线生成口播视频的完整方案

Duix.Avatar 开源数字人克隆工具:10秒视频离线生成口播视频的完整方案 【免费下载链接】Duix-Avatar 🚀 Truly open-source AI avatar(digital human) toolkit for offline video generation and digital human cloning. 项目地址: https://gitcode.com/GitHub_Tr…

📰

ToF相机全链路解析:从VCSEL硬件到ROS2点云的工程实践

1. 项目概述:为什么“ToF相机从底层硬件到上层应用整体链路”这个标题值得深挖?如果你是做过嵌入式视觉、工业检测或机器人导航的工程师,大概率踩过这样的坑:买回来一块标称“支持ToF测距”的模组,接上开发板后v4l2-li…

📰

Onyx CLI Agent 接入指南:让 AI 智能体检索企业知识库的完整配置与命令手册

Onyx CLI Agent 接入指南:让 AI 智能体检索企业知识库的完整配置与命令手册 【免费下载链接】danswer Open Source AI Platform - AI Chat with advanced features that works with every LLM 项目地址: https://gitcode.com/GitHub_Trending/da/danswer ony…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬