最近经常使用 PowerShell 安装一些开源的项目,拉代码,安装依赖,一些命令需要来回复制,效率非常底下,非常想念在类unix系统下面那些好用的命令行工具,如 oh-my-zsh 。网上搜了一下,意外发现 PowerShell 下面也有类似的工具名叫oh-my-posh ,感觉还挺不错。故把安装的过程记录一下。
综合互联网其他网友的方案,为实现像 oh-my-zsh 那样使用 PowerShell,需要安装以下软件:
Windows Terminal ,在 win11 中系统已经安装好了;
安装 Nerd font 字体,其中 CaskaydiaCove Nerd Font 字体在自述中提到 Info: A fun, new monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal
声称在 Windows Terminal 有专门的适配字体monospaced font,因此我选择使用它;
PowerShell 7
PowerShellGet 是 Windows 平台上的包管理器,主要用于管理 PowerShell 模块,但也支持其他类型的包。
Oh My Posh 是一款用于美化和定制终端提示符的工具。它可以在各种操作系统和终端中使用,包括 Windows、macOS 和 Linux。通过 Oh-my-posh,你可以轻松地更改终端提示符的外观,添加各种有用的信息,例如当前目录、Git 分支、电池状态等。
posh-git 是一款用于 Windows 系统的 PowerShell 扩展模块,它主要为 Git 提供了更加丰富且人性化的命令行界面体验。
PSReadLine 用于增强命令行编辑体验的模块,提供语法高亮/命令预测/历史记录管理以及提供了丰富的快捷键和编辑命令。
安装指南
字体安装
下载好字体安装压缩包,解压后安装 mono 字体:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 目录: C:\Users\lewlh\Downloads\share\CascadiaCode Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2025 /2 /15 22 :19 2756920 CaskaydiaCoveNerdFont-Bold .ttf-a---- 2025 /2 /15 22 :19 2606596 CaskaydiaCoveNerdFont-BoldItalic .ttf-a---- 2025 /2 /15 22 :19 2758276 CaskaydiaCoveNerdFont-ExtraLight .ttf-a---- 2025 /2 /15 22 :19 2606992 CaskaydiaCoveNerdFont-ExtraLightItalic .ttf-a---- 2025 /2 /15 22 :19 2605352 CaskaydiaCoveNerdFont-Italic .ttf-a---- 2025 /2 /15 22 :19 2759040 CaskaydiaCoveNerdFont-Light .ttf-a---- 2025 /2 /15 22 :19 2608868 CaskaydiaCoveNerdFont-LightItalic .ttf-a---- 2025 /2 /15 22 :19 2755216 CaskaydiaCoveNerdFont-Regular .ttf-a---- 2025 /2 /15 22 :19 2756324 CaskaydiaCoveNerdFont-SemiBold .ttf-a---- 2025 /2 /15 22 :19 2606140 CaskaydiaCoveNerdFont-SemiBoldItalic .ttf-a---- 2025 /2 /15 22 :19 2757672 CaskaydiaCoveNerdFont-SemiLight .ttf-a---- 2025 /2 /15 22 :19 2607848 CaskaydiaCoveNerdFont-SemiLightItalic .ttf-a---- 2025 /2 /15 22 :19 2668696 CaskaydiaCoveNerdFontMono-Bold .ttf-a---- 2025 /2 /15 22 :19 2520856 CaskaydiaCoveNerdFontMono-BoldItalic .ttf-a---- 2025 /2 /15 22 :19 2670056 CaskaydiaCoveNerdFontMono-ExtraLight .ttf-a---- 2025 /2 /15 22 :19 2521248 CaskaydiaCoveNerdFontMono-ExtraLightItalic .ttf-a---- 2025 /2 /15 22 :19 2519608 CaskaydiaCoveNerdFontMono-Italic .ttf-a---- 2025 /2 /15 22 :19 2670816 CaskaydiaCoveNerdFontMono-Light .ttf-a---- 2025 /2 /15 22 :19 2523124 CaskaydiaCoveNerdFontMono-LightItalic .ttf-a---- 2025 /2 /15 22 :19 2666992 CaskaydiaCoveNerdFontMono-Regular .ttf-a---- 2025 /2 /15 22 :19 2668100 CaskaydiaCoveNerdFontMono-SemiBold .ttf-a---- 2025 /2 /15 22 :19 2520400 CaskaydiaCoveNerdFontMono-SemiBoldItalic .ttf-a---- 2025 /2 /15 22 :19 2669448 CaskaydiaCoveNerdFontMono-SemiLight .ttf-a---- 2025 /2 /15 22 :19 2522104 CaskaydiaCoveNerdFontMono-SemiLightItalic .ttf-a---- 2025 /2 /15 22 :19 2756696 CaskaydiaCoveNerdFontPropo-Bold .ttf-a---- 2025 /2 /15 22 :19 2606372 CaskaydiaCoveNerdFontPropo-BoldItalic .ttf-a---- 2025 /2 /15 22 :19 2758052 CaskaydiaCoveNerdFontPropo-ExtraLight .ttf-a---- 2025 /2 /15 22 :19 2606768 CaskaydiaCoveNerdFontPropo-ExtraLightItalic .ttf-a---- 2025 /2 /15 22 :19 2605128 CaskaydiaCoveNerdFontPropo-Italic .ttf-a---- 2025 /2 /15 22 :19 2758816 CaskaydiaCoveNerdFontPropo-Light .ttf-a---- 2025 /2 /15 22 :19 2608644 CaskaydiaCoveNerdFontPropo-LightItalic .ttf-a---- 2025 /2 /15 22 :19 2754992 CaskaydiaCoveNerdFontPropo-Regular .ttf-a---- 2025 /2 /15 22 :19 2756100 CaskaydiaCoveNerdFontPropo-SemiBold .ttf-a---- 2025 /2 /15 22 :19 2605916 CaskaydiaCoveNerdFontPropo-SemiBoldItalic .ttf-a---- 2025 /2 /15 22 :19 2757448 CaskaydiaCoveNerdFontPropo-SemiLight .ttf-a---- 2025 /2 /15 22 :19 2607624 CaskaydiaCoveNerdFontPropo-SemiLightItalic .ttf-a---- 2025 /2 /15 22 :19 4395 LICENSE-a---- 2025 /2 /15 22 :19 3610 README.md
直击点击字体文件即可安装,安装完字体后,在 WindowsTerminal 中设置字体:打开Windows Terminal 设置项 -> 默认值 -> 外观 -> 字体 -> 选择 CaskaydiaCove Nerd Font Mono -> 点击保存:
使用WinGet安装PowerShell
使用 WindowsTerminal 打开 Windows PowerShell 窗口,执行以下命令安装 PowerShell:
1 winget install --id Microsoft.PowerShell --source winget
安装完成后,WindowsTerminal 将会增加一个新的启动项 PowerShell ,该项目与 Windows PowerShell 是不一样的,后续都需要通过 PowerShell 使用 PowerShell 7。
安装PowerShellGet
以系统管理员权限打开PowerShell 终端,执行以下命令:
1 Install-Module -Name PowerShellGet -Force
安装oh-my-posh
以系统管理员权限打开PowerShell 终端,执行以下命令:
1 2 3 4 5 6 7 8 9 winget install JanDeDobbeleer.OhMyPosh -s winget 已找到 Oh My Posh [JanDeDobbeleer.OhMyPosh ] 版本 24.19 .0 此应用程序由其所有者授权给你。 Microsoft 对第三方程序包概不负责,也不向第三方程序包授予任何许可证。 正在下载 https://github.com/JanDeDobbeleer/oh -my-posh /releases/download/v24.19.0 /install-x64 .msi ██████████████████████████████ 5.68 MB / 5.68 MB 已成功验证安装程序哈希 正在启动程序包安装... 已成功安装
安装posh-git
以系统管理员权限打开PowerShell 终端,执行以下命令:
1 PowerShellGet\Install-Module posh-git -Scope CurrentUser -Force
安装PSReadLine
以系统管理员权限打开PowerShell 终端,执行以下命令:
1 Install-Module PSReadLine -Force
编辑oh-my-posh配置文件
打开PowerShell 终端,执行以下命令编辑配置文件 code $PROFILE
:
1 2 3 4 5 6 Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackwardSet-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward oh -my-posh init pwsh --config "$env:POSH_THEMES_PATH /jandedobbeleer.omp.json" | Invoke-Expression Import-Module posh-git
保存修改,重新打开一个新的PowerShell 终端,将会看到以下效果:
References