在通过官方的安装命令后在个人用户的环境变量中有oh-my-posh的环境变量

但即使已经装配了环境变量,在powershell中输入oh-my-posh依然会出现未识别问题

这个问题的解决方法是: 通过管理员模式进入
然后就会发现之前设置的东西就回来了
截至2022年6月25日晚上8点,我已经彻底征服了oh-my-posh这个软件,对字体和主题的更换流程轻车熟路,还可以自己定做自己喜欢的主题(因为有现有主题的json文件所以可以对这些json文件进行修改填充自己想要的样式或者语句, 在不伤害原有主题的情况下另外创建一个json文件即完成了一个自己的主题)
在官网找到对应的命令行,在Windows timinal中输入,进行安装
Windows Teminal可以去微软应用商店里面搜索Teminal进行安装
非常漂亮的一个界面,点击Get Started进入官方帮助文档内
现在我们已经进入到了文档内部, 看到真的非常详细, 有很多方面的指导说明

通过winget方式使用以下命令行对oh-my-posh进行安装下载:
winget install JanDeDobbeleer.OhMyPosh -s winget
这个下载内容包括两个东西
oh-my-posh.exe-Windows executable
这个是基于Windows系统的oh-my-posh的可执行文件, 但是点击运行没有用, 必须要在Powershell中执行
themes-The latest Oh My Posh themes
最新的主题, 可以通过这个链接去官网主题页面进行查看下载
官方文档还贴出了oh-my-posh的更新命令, 如果是刚刚下载的那么就不需要更新了
winget upgrade JanDeDobbeleer.OhMyPosh -s winget
至此安装过程就已经全部完成了, 接下来是主题的配置
首先要检查环境变量中有没有POSH_THEMES_PATH,通过环境变量中POSH_THEMES_PATH对应的路径可以找到所有可用的主题
然后使用以下这行命令进行主题的初始化, 其中jandedobbeleer是主题的名字
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json"
主题的更换要依托于一个PROFILE脚本文件来进行
基于PROFILE脚本文件涉及到创建and打开and填充配置语句and执行脚本文件四条命令
如果没有PROFILE文件, 通过以下这条命令
New-Item -Path $PROFILE -Type File -Force
打开PROFILE文件,通过以下这条命令
notepad $PROFILE
在PROFILE文件中添加以下内容
oh-my-posh init pwsh | Invoke-Expression
执行PROFILE脚本文件, 通过以下这条命令
. $PROFILE
如果对以上流程还有一种云里雾里的感觉可以参看官方文档的Prompt教程

在更换完主题之后可能会发现出现小方框, 也就是乱码问题, 是因为字体不适配的原因
解决方法:
第一种: 去官网手动下载安装(强烈推荐,因为第二种我试了没弄好😁)
在官方文档下载页面的初始几行就给出了与主题相适配的书呆子(Nerd)字体推荐

所以需要去到字体官网 Nerd Fonts进行下载
相关的界面再点击上图的Nerd Font就会去到官方的另一个界面Fonts, 如下, 里面有详细的字体安装流程

下载下来的是一个压缩包文件, 将压缩包解压, 里面是字体文件的安装包, Ctrl + a全选然后选择为全体用户安装即可
打开powershell的配置页面,选择外观->字体, 就可以发现已经有了, 然后选择保存, 开始使用


第二种: 采用官方文档下载安装教程, 以管理员方式运行Teminal用命令行进行安装
一定要以管理员方式运行
oh-my-posh font install
下载页面情况如下



下载完成之后要在Teminal中进行配置

官方文档的解释是这样的

至此oh-my-posh就已经全部安装好了, 可以开始愉快的powershell命令行操作了🙌
之后我会再看一下创建自己的主题和在powershell导入Linux终端连接自己的云服务器或者是Windows下的Linux子系统, 到时候总结一下再写出来
在以上的安装步骤都顺利完成的基础上, 更换主题非常简单
get-Poshthemes //首先可以查看自己想要更换的主题
notepad $PROFILE //打开配置脚本文件,内容形式如下

就以上面的内容为例, 找到当前使用的主题名

然后将已经选择好的主题的名字替换原有的主题名
最后执行脚本, 使得更改生效, 主题更换即完成
. $PROFILE //执行脚本文件命令