在 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 版本
  • 时间
    整体如:

相关推荐
dllmayday1 天前
Linux 上用终端连接 WiFi
linux·服务器·windows
Curtain_Gin1 天前
windows nvim lazy
windows
生而为虫1 天前
Claude Code 最新版安装教程(Windows/Mac/Linux 全平台) 面向普通用户的 Claude Code 安装与模型接入指南
linux·windows·macos
DevilSeagull1 天前
Windows 批处理 (Batch) 编程: 从入门到入土. (一) 基础概念与环境配置
开发语言·windows·后端·batch·语言
CyL_Cly1 天前
Parsec(parsec安卓/windows/macos下载)
windows
Echo_NGC22371 天前
【论文解读】Attention Is All You Need —— AI 时代的“开山之作“,经典中的经典(transformer小白导读)
人工智能·python·深度学习·神经网络·机器学习·conda·transformer
2601_958320571 天前
【小白零基础上手 】钉钉内部机器人接入 OpenClaw 完整流程讲解(含安装包)
人工智能·windows·机器人·钉钉·open claw·open claw安装
love530love1 天前
f2 项目(多平台的作品下载与接口数据处理)源码部署记录
人工智能·windows·f2
何中应1 天前
Conda安装&使用
python·conda·python3.11
生而为虫1 天前
在VScode中使用Claude Code agent并配置模型(仅mac电脑实际操作,windows电脑未实际操作如有问题可留言)
windows·vscode·macos