跳转到主内容

新动态 #2

· 1 分钟阅读
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

真没想到一周后就能带来第二期更新,我们再次相见啦!

功能更新

命令行界面(也是#2)

上篇博客中,我重点介绍了CLI界面的几处改动。没想到还能进一步简化:由于Oh My Posh本就是生成提示符的工具,prompt命令显得冗余(因为功能已隐含)。该命令现已被移除,但升级后仍可正常使用,以免破坏现有功能。

初始化功能

原先的初始化方式:

oh-my-posh prompt init pwsh | Invoke-Expression

现在简化为:

oh-my-posh init pwsh | Invoke-Expression

调试

调试Oh My Posh只需使用debug命令。它能智能识别配置文件,无需额外指定--config参数。

oh-my-posh debug

Fish Shell支持

虽然我们支持fish shell已有段时间,但这次是质的飞跃。我最近将fish作为主力shell使用,自然不能让它落后。推荐你也尝试下,体验非常棒!

具体更新了哪些?现已原生支持:

注意:fish目前暂不支持二级提示符,该功能上线后我们会立即跟进。要体验全部新特性,请升级到最新版并在~/.config/fish/config.fish中添加初始化代码:

oh-my-posh init fish | source

瞬态提示符增强

说到瞬态提示符,它现在掌握了一些新技能。首先,你可以在模板中使用.Code属性获取上条命令的错误码(若有)。例如,当上条命令执行失败时,可以用它来改变瞬态提示符的颜色。这也意味着我们需要支持颜色模板——这个功能此前尚未实现。现在好了,新版瞬态提示符已支持颜色模板功能。

"transient_prompt": {
"background": "p:yellow",
"background_templates": [
"{{ if gt .Code 0 }}p:red{{ end }}"
],
"foreground": "p:black",
"foreground_templates": [
"{{ if gt .Code 0 }}p:white{{ end }}"
],
"template": "<background,transparent>\ue0b6</> {{ .Folder }} <background,transparent>\ue0b0</><,transparent> </>"
}

效果如下:

终端界面

配置文件V2迁移

还记得今年初我们完成的配置V1迁移吗?现在又迎来了V2迁移。观察Oh My Posh的架构设计,各类提示符(瞬态、二级等)正逐渐向片段(segment)的模型靠拢。此前唯一的区别在于:template并非属性而是这些提示符的字段。既然所有片段现已支持模板功能,统一两种模型并迁移到配置V2就成了顺理成章的选择,确保用户无需任何手动操作。

以下片段定义:

{
"background": "#9A348E",
"foreground": "#ffffff",
"leading_diamond": "\ue0b6",
"properties": {
"template": "{{ .UserName }} "
},
"style": "diamond",
"type": "session"
}

在V2中将自动迁移为:

{
"background": "#9A348E",
"foreground": "#ffffff",
"leading_diamond": "\ue0b6",
"style": "diamond",
"template": "{{ .UserName }} ",
"type": "session"
}

Go 1.18升级

虽然不影响终端用户,但值得了解:Oh My Posh现已默认采用go 1.18。这带来显著的语言改进和若干新特性。最值得注意的是泛型支持,不过由于它尚未支持方法级实现(这正是我们的核心应用场景),目前还无法直接受益。

尽管如此,及时更新总有益处。若发现任何异常,请务必告知我们!

本周的更新就这些,下周见 🤞🏻

各位,让提示符保持优雅吧!