不小心将 oh-my-posh 从 V2 升级到了 V3,许多东西有了较大变化。此篇博客记录一下主题的修改记录。
封面《月に寄りそう乙女の作法》
前言
oh-my-posh 是一个可自定义的 shell 提示引擎。oh-my-posh v3 相较于 oh-my-posh v2,完全使用了 GO 编写,使其可以跨平台运行,同时对主题的修改更容易。
Oh-My-Posh V3 的文档在此
安装
1 | # -Scope CurrentUser可以不需要,因为默认就是CurrentUser |
主题配置
展示所有本地主题
1 | Get-PoshThemes |
设置主题
1 | # 此处以本人比较喜欢的paradox为例 |
需要注意的是现在设置的主题为暂时的,当你打开新的 powershell 以后就没了,因此还需要编辑 $PROFILE
来持久化
1 | # 笔记本编辑 |
添加下面一行
1 | Set-PoshPrompt -Theme ~/.oh-my-posh.omp.json |
如果遇到了数字签名问题,可以参考这里面的 RemoteSigned 的方法,打开 profile 文件属性设置为不阻拦。
字体下载
oh-my-posh V3 设计使用 Nerd Fonts,官方推荐 Meslo LGM NF。本文配置使用的是 MesloLGM NF
字体。需要下载完字体后设置终端的字体,否则一些特殊符号无法正常显示
主题定制
考虑到自带的主题无法完美的符合我的要求,因此需要对主题文件进行修改,主要调整 conda 的全局显示、git 和时间的显示。也可以参考其他主题新增一点功能,所有官方主题文件在此
conda
oh-my-posh 默认的 python 配置只有在含有 python 文件的目录下才会启动,因此无法看到 conda 的默认环境。修改起来也比较简单,采用环境变量的形式即可。通过 dir env:
找到 CONDA_DEFAULT_ENV
环境变量,设置 oh-my-posh 中的背景色为红色,设置 python 的图标,保持字体颜色一致。为了好看和方便,添加到 session
块之后 path
块之前。
1 | { |
git
oh-my-posh 在高版本中的 git 不显示详细信息,可以通过配置主题解决。配置如下,也可以使用 posh-git
直接配置。经过尝试 posh-git
无法达到我需要的效果。
1 | { |
time
参考其他主题,在每行的右边新增一个显示当前时间的图标。
1 | { |
完整配置文件
1 | { |
效果图
后记
总体来说 oh-my-posh v3 比 v2 更具有移植性,同配置起来更方便,默认主题也多,相对也更好看。个人主观感觉启动速度也快了不少。