新功能速递 #3
本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
再会了,老朋友!
PowerShell 模块
最初,我们只有 PowerShell 模块。它是 Oh My Posh 的起源, 即使迁移到 Go 语言后也一直可用。但随着发展,它的优势已大幅减弱, 甚至还引入了额外障碍。
自三月起,该模块不再提供新功能并会显示警告信息。请查看迁移指南, 了解如何从模块迁移到其他安装方式,整个过程只需一分钟。
抽奖活动
几周前我启动了抽奖活动庆祝 Oh My Posh 六周年。但随后我去度假了, 没来得及公布获奖者。闲话少说,恭喜 @samerde 被在线随机抽选器选中获奖!
功能更新
久等了,请坐稳扶好 😅
PowerShell UTF-8
早期因字体和路径问题,Oh My Posh 会强制设置 PowerShell 为 UTF-8 编码。
后来发现这并非必要。新的调用方式移除了全局设置需求,
避免了副作用。但当你的 --config 路径包含非 ASCII 字符时仍可能出问题——
世事难两全啊!遇到这种情况,请在初始化 Oh My Posh 时设置 UTF-8 编码。
$previousOutputEncoding = [Console]::OutputEncoding
[Console]::OutputEncoding = [Text.Encoding]::UTF8
try {
oh-my-posh init pwsh --config ~/custom.omp.json | Invoke-Expression
} finally {
[Console]::OutputEncoding = $previousOutputEncoding
}
Nu shell
如果你还没见过 Nu shell,这是位新秀。Oh My Posh 现已支持它, 就像支持其他主流 shell(bash/zsh/fish 等)一样。这意味着新增功能时, 用户只需更新 Oh My Posh 即可,无需额外操作。
Accordion
想让 powerline 段落在禁用时折叠显示?现在可以了!
使用 accordion 样式即可实现可折叠状态。

项目检测
功能持续扩展中。project 段落现在支持以下项目类型:
Shell 版本
多版本 shell 用户的福音!现在可通过 shell 段落的 .Version 属性区分版本:
"template": " in {{ .Name }} {{ .Version }} "
Git 优化
git 段落新增技巧帮你提速。之前我们强制将未跟踪文件模式设为 normal,
但在大型仓库中效率低下。现在你可以按仓库覆盖此设置。
"untracked_modes": {
"/Users/user/Projects/oh-my-posh/": "no"
}
可用选项详见 git 文档,请按需取用!
跨段落模板属性
等等,什么?没错,你没看错。Oh My Posh 现在支持跨segment模板属性。
这意味着你可以在一个segment的模板中使用另一个segment的属性。如何实现?Oh My Posh
提供了 .Segments 属性,其中包含所有segment属性的映射表。要使用其他segment的数据,
只需在模板中使用 {{ .Segments.Segment }} 语法,其中 .Segment
是你想引用的segment名称(首字母大写)。
例如,若想在 exit segment 中使用 git segment 的 .UpstreamGone 属性,
可以这样配置:
"template": " {{ if .Segments.Git.UpstreamGone }}\uf7d3{{ else if gt .Code 0 }}\uf00d{{ else }}\uf00c{{ end }} "
此功能要求被引用的段落必须存在于配置中。若配置未包含 git 段落, 上例将失效,因为 Oh My Posh 仅在需要时填充属性。
其他更新
-
oh-my-posh debug现在能准确测量运行时间并记录启动逻辑 -
语言类segment现在可区分文件和文件夹
-
python segment 新增支持 pyenv 的
.python-version文件 -
init命令新增--strict参数,不再解析可执行文件路径 -
battery segment 现在能显示 macOS 所有相关电量状态
-
dotnet segment 新增支持
.slnf解决方案筛选器文件 -
新增 iterm segment 用于显示 iTerm shell 集成的提示标记
-
memory segment 现在可显示可用内存量
-
path segment 新增
.Writable属性,标识当前用户 是否拥有当前文件夹的写入权限
问题修复
-
git segment 现可处理使用
--separate-git-dir的仓库 -
超链接长度测量修复(确保右对齐提示符正确显示)
-
提示符转义序列正确转义(避免意外视觉异常)
-
Spotify 在非英语 Windows 系统上运行正常
-
Windows 并行逻辑崩溃问题修复
-
git 上游消失状态逻辑修复
-
PowerShell 中 PSReadLine 现在接收正确的提示行数(
Set-PSReadlineOption -ExtraPromptLineCount), 修复使用瞬态提示符时因多行提示符导致的异常行为 -
winget 安装程序现在能正确添加
PATH项(与安装模式无关)
本次更新就到这里,下次再见 🤞🏻
各位,让提示符保持优雅吧!