在 Windows PowerShell(pwsh)中配置 Oh My Posh + Conda 环境美化与性能优化

在 Windows PowerShell(pwsh)中配置 Oh My Posh + Conda 环境美化与性能优化

🧩 背景

我目前的开发环境是 Windows 11 + PowerShell 7.5.3(pwsh),主要做后端与前端开发(Go + Node.js + Electron)。

平常我在 Windows 上使用 PowerShell,而在 WSL2 中使用 Zsh。虽然 WSL2 环境功能强大,但启动和输入响应较慢,于是我更倾向在 PowerShell 下直接开发前端、后端,并用它启动 Conda、Node、Go 等项目。

为了让命令行更好看、功能更强(能显示 Git 分支、Node 版本、Conda 环境等),我使用了:

  • 🧠 Oh My Posh:跨平台终端美化框架;
  • 💄 主题:M365Princess
  • 💡 Conda:管理 Python 环境;
  • ⚙️ pwsh 启动脚本(Profile):自定义启动行为与快捷命令。

💥 问题出现

在配置好 oh-my-posh 后,我希望能:

  1. 在提示符中显示当前的 conda 环境名称
  2. 最好还能显示 Python 版本
  3. 同时保持与主题的 彩色块拼接(Powerline)风格一致
  4. 启动速度不要太慢。

但遇到的问题是:

  • 默认的 python 段落模板完全没显示;
  • 网上大多数配置用 template,但在我的 oh-my-posh 27.1.0 版本里根本无效;
  • 只有我自己写的这一段才能正确显示:
json 复制代码
{
  "type": "python",
  "style": "plain",
  "foreground": "#98C379",
  "properties": {
    "display_virtual_env": true,
    "dispplay_default": true,
    "display_version": false,
    "home_enabled": true,
    "prefix": "\uE235 ",
    "postfix": " ",
    "display_mode": "always"
  }
}

虽然能显示,但样式单调,不是我想要的 Powerline 拼接风格。


🔧 目标

✅ 我想要的效果是这样的:

  • 提示符有彩色块;
  • 显示当前 Conda 环境名(如 base 3.10.16);
  • 与 Git、Node.js、时间等段落衔接自然。

🧰 解决方案

经过测试,我确认在 M365Princess 主题中,只要保持与原配置兼容的字段(properties),就能让 Powerline 样式也正确渲染。

最终我采用了以下配置:

彩色块拼接的 Conda 段

json 复制代码
{
  "type": "python",
  "style": "powerline",
  "powerline_symbol": "\ue0b0",
  "background": "p:teal",
  "foreground": "p:white",
  "properties": {
    "display_virtual_env": true,
    "display_version": true,
    "display_mode": "always",
    "prefix": "\uE235 ",
    "postfix": " "
  }
}

🔹 如果你只想显示环境名(去掉版本号),如下。

json 复制代码
{
  "type": "python",
  "style": "powerline",
  "powerline_symbol": "\ue0b0",
  "background": "p:teal",
  "foreground": "p:white",
  "properties": {
    "display_virtual_env": true,
    "display_virtual_env_name_only": true,   // 只显示 env 名
    "display_version": false,                 // 不显示版本
    "fetch_version": false,                   // 不去取版本(关键)
    "display_mode": "always",
    "prefix": "\uE235 ",
    "postfix": " "
  }
}

🧱 插入位置

在你的 M365Princess.omp.json 主题文件中,将这段插入在:

复制代码
"git" 段后
"node" 段前

完整的区块示例:

json 复制代码
{
  "background": "p:salmon",
  "foreground": "p:white",
  "type": "git",
  ...
},
{
  "type": "python",
  "style": "powerline",
  "powerline_symbol": "\ue0b0",
  "background": "p:teal",
  "foreground": "p:white",
  "properties": {
    "display_virtual_env": true,
    "display_version": true,
    "display_mode": "always",
    "prefix": "\uE235 ",
    "postfix": " "
  }
},
{
  "background": "p:sky",
  "foreground": "p:white",
  "type": "node",
  ...
}

⚡ 效果展示

美化后,提示符如下:

复制代码
ab-in  electron-go-app  ➜ (master)   base 3.10.16   22.20.0  ♥ 19:31 

或(仅环境名):

复制代码
ab-in  electron-go-app  ➜ (master)   base   22.20.0  ♥ 19:31 

非常整洁,加载速度也很快。


🧩 其它优化

  1. Conda 初始化

    powershell 复制代码
    conda init powershell

    然后在 $PROFILE 中自动加载。

  2. Oh My Posh 初始化

    powershell 复制代码
    oh-my-posh init pwsh --config ~/Posh/M365Princess.omp.json | Invoke-Expression
  3. 性能优化

    • 不加载太多插件;
    • 避免在 $PROFILE 里执行复杂脚本;
    • 使用 JSON 格式主题(比 YAML 加载更快)。

✅ 总结

模块 工具 / 设置
终端 PowerShell 7.5.3(pwsh)
美化 Oh My Posh 27.1.0
主题 M365Princess
Python 管理 Conda
关键功能 Conda 环境名显示 + Powerline 拼接
关键段落 "type": "python" Powerline 样式
优点 快速、美观、跨平台、一致性高

✨ 最终展示

完成后你的 PowerShell 主题可以同时展示:

  • 用户名与路径
  • Git 分支
  • Conda 环境
  • Node 版本
  • 时间
    整体如:

相关推荐
猫头虎6 小时前
如何在浏览器里体验 Windows在线模拟器:2026最新在线windows模拟器资源合集与技术揭秘
运维·网络·windows·系统架构·开源·运维开发·开源软件
王阿巴和王咕噜11 小时前
【WSL】安装并配置适用于Linux的Windows子系统(WSL)
linux·运维·windows
子琦啊13 小时前
WIN11电脑桌面“固定到开始”菜单失效解决办法
windows·电脑
jjjddfvv14 小时前
超级简单启动llamafactory!
windows·python·深度学习·神经网络·微调·audiolm·llamafactory
深念Y15 小时前
夸克网盘 应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行sxstrace.exe 工具。
windows·bug·报错·系统·更新·网盘·夸克
love530love15 小时前
EPGF 新手教程 21把“环境折磨”从课堂中彻底移除:EPGF 如何重构 AI / Python 教学环境?
人工智能·windows·python·重构·架构·epgf
cngm11018 小时前
记录两个网卡同时访问两个网段的调试方法route print
服务器·网络·windows
乘风对月歌19 小时前
conda 或 vscode 中没有的虚拟环境
ide·vscode·conda
Ashley_Amanda19 小时前
Python 常见问题梳理
开发语言·windows·python
比奇堡的猪猪19 小时前
修改默认conda环境(在win中)
python·conda