必须配置Oh My Posh并搭配Nerd字体,否则图标显示为方块或问号;安装命令为winget install JanDeDobbeleer.OhMyPosh -s winget,需下载Cascadia Code PL等完整Nerd字体包并逐个安装,再通过$PROFILE写入oh-my-posh init pwsh | Invoke-Expression初始化,并在Windows Terminal settings.json中正确设置font.face为对应字体全名。

要在Windows 11上让PowerShell终端提示符显示Git分支、执行时间、当前路径截断和彩色图标,必须配置Oh My Posh并搭配Nerd字体,否则所有图标都会变成方块或问号。
安装Oh My Posh与必备字体
以管理员身份打开Windows Terminal → 切换到PowerShell标签页 → 执行:winget install JanDeDobbeleer.OhMyPosh -s winget。
访问Nerd Fonts官网,下载【Cascadia Code PL】或【JetBrainsMono Nerd Font】完整包(不是普通版),解压后双击所有.ttf文件逐个安装——漏装任一字体文件,后续图标仍会乱码。
验证安装是否成功:输入oh-my-posh --version,看到类似v22.3.0的输出即为正常。
初始化PowerShell配置文件
运行notepad $PROFILE打开PowerShell配置文件。如果系统提示“文件不存在”,直接点“是”创建空文件。
在空白文件中粘贴以下命令(以启用默认主题):oh-my-posh init pwsh | Invoke-Expression
保存文件并关闭记事本。这一步不能跳过,否则重启终端后oh-my-posh不会自动加载——【$PROFILE文件路径必须是英文且无空格,否则PowerShell拒绝执行其中脚本】。
更换更炫的主题并启用Git状态
先查看本地所有可用主题:Get-ChildItem "$env:POSH_THEMES_PATH\*.omp.json" | ForEach-Object {$_.Name}
选一个喜欢的主题,比如sorin.omp.json,回到$PROFILE文件,把刚才那行替换成:oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/sorin.omp.json" | Invoke-Expression
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
保存后关闭所有PowerShell窗口,重新打开Windows Terminal → 新提示符立刻生效。Git仓库内会自动显示当前分支名和状态(如✔️表示已暂存,❗表示有未提交修改)。
配置Windows Terminal使用Nerd字体
在Windows Terminal中按Ctrl + ,打开settings.json → 找到"profiles" → "defaults"节点 → 在"font"对象里添加或修改两行:
"face": "Cascadia Code PL","size": 12
若使用JetBrains字体,则"face"值改为"JetBrainsMono Nerd Font"。改完保存JSON,终端会自动重载——【字体名必须与Windows字体列表中显示的全名完全一致,大小写和空格都不能错】。
可选:添加Terminal-Icons增强文件图标
方法一:在PowerShell中执行Install-Module -Name Terminal-Icons -Repository PSGallery -Force
然后在$PROFILE末尾追加一行:Import-Module -Name Terminal-Icons。
方法二:跳过模块安装,直接用ls命令时加参数:ls -Icon——这步纯属锦上添花,不影响oh-my-posh主体功能。
最后检查与排障
第一步:打开新终端,执行Get-PoshThemes(若提示未识别命令,说明$PROFILE没生效,重开终端或手动运行. $PROFILE)。
第二步:进入任意Git项目目录,确认提示符左侧出现分支名,右侧有执行时间;若全是方块,立即检查字体是否安装完整、settings.json中字体名拼写是否正确。
第三步:执行oh-my-posh --config "$env:POSH_THEMES_PATH\sorin.omp.json" --pwd $PWD,观察终端是否即时渲染出主题预览效果——这是验证主题文件路径是否有效的最直接方式。

















