在 Windows 中为 PowerShell 配置 oh-my-posh

前言

使用 Windows 的时候我们或多或少会接触到 CMD 或 PowerShell 等命令行工具,使用命令行工具时难免会觉得单调,这时就可以给(Windows)PowerShell 配置 oh-my-posh 以美化,使其使用更加顺手及美观

下载

  1. 可选,(Windows 11 及更高版本自带)
    Windows Terminal(最低支持 Windows 10 19041,即 Windows 10 2004。老版本最低支持到 Windows 10 17763,即 Windows 10 1809)
  2. 可选
    PowerShell,推荐使用 MSI 包安装
    扩展阅读:Windows PowerShell 5.1 和 PowerShell 7.x 之间的差异 - Microsoft Learn
    oh-my-posh 支持 Windows PowerShell 和 PowerShell,你可以选择只在 Windows PowerShell 中配置
  3. oh-my-posh
    推荐选择 install-arm64.msi(ARM64)或 install-x64.msi(64 位),install-arm64.msixinstall-x64.msix 我没摸索清楚(雾
  4. Nerd Fonts
    官方推荐使用 MesloLG Nerd Font,选择 Meslo.zip 下载即可,我安装的是 MesloLGMNerdFont-Bold.ttf

安装并配置

配置环境变量

安装完成 oh-my-posh 后,按下 WIN + R 以打开“运行”,输入 %LocalAppData%\Programs\oh-my-posh\bin 后按下 Enter,在打开的文件资源管理器窗口中右键顶部的地址栏,并选择“复制地址”

复制 oh-my-posh 安装路径

再次按下 WIN + R 以打开“运行”,输入 SystemPropertiesAdvanced.exe 后按下 Enter 以打开“高级系统设置”
点击右下角的“环境变量(N)…”,在“系统变量(S)”中找到 Path 的变量,并点击“编辑(I)…”,点击右边的“新建(N)”,将复制的 oh-my-posh 安装路径粘贴进去

设置 oh-my-posh 环境变量

初始化

在(Windows)PowerShell 中输入代码以创建配置文件

1
notepad $PROFILE
如果没有此文件,则通过命令手动创建
1
New-Item -Path $PROFILE -Type File -Force

在打开空白的配置文件后,将以下代码内容粘贴并保存

1
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/jandedobbeleer.omp.json" | Invoke-Expression
如果你使用的是 Windows PowerShell 则内容如下
1
oh-my-posh init powershell --config "$env:POSH_THEMES_PATH/jandedobbeleer.omp.json" | Invoke-Expression

Windows PowerShell 的配置文件将会存储在
%UserProfile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
PowerShell 的配置文件将会存储在
%UserProfile%\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
也可以是 $env:POSH_THEMES_PATH

完成后输入命令或重启终端/(Windows)PowerShell 以应用主题

1
. $PROFILE

美化

更换主题

从官网查看主题:https://ohmyposh.dev/docs/themes
从终端查看主题:Get-PoshThemes

打开配置文件,并替换其中的 jandedobbeleer 字段
例如我更换主题为 powerlevel10k_rainbow,那么配置文件的代码是这样

1
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/powerlevel10k_rainbow.omp.json" | Invoke-Expression
如果你使用的是 Windows PowerShell 则内容如下
1
oh-my-posh init powershell --config "$env:POSH_THEMES_PATH/powerlevel10k_rainbow.omp.json" | Invoke-Expression

更换字体

在终端中打开设置 > 配置文件 > Windows PowerShell(或 PowerShell) > 外观 > 字体
将字体设置为 MesloLGM Nerd Font 并保存

设置终端字体

后记

最终效果

效果

.MSI 的方式安装的应该不限制 Windows 的版本,或许 Windows 7 都能用(?)
.MSIX 的或许需要安装 MSIX Core - Microsoft Learn 才能继续使用
可以尝试 给 Windows 7 升级 Windows PowerShell 后重试

参考文献:

  1. PowerShell 美化——oh-my-posh 的配置与使用 - 地衣君的Blog
  2. 云萧的咕咕屋(技术支持)