powershell 美化
成品
首先得安装powershell 不是自带的 windows powershell
PowerShell - Free download and install on Windows | Microsoft Store
最终效果
第一步:安装 Oh My Posh 主程序
最推荐也是最简单的方法是使用 Windows 自带的包管理器 winget。
- 打开 PowerShell。
- 复制并粘贴以下命令,然后回车:
PowerShell
winget install JanDeDobbeleer.OhMyPosh -s winget - 等待进度条走完。
- ⚠️ 非常重要: 安装完成后,请关闭当前的 PowerShell 窗口,然后重新打开一个全新的 PowerShell 窗口。这是为了让系统识别刚刚安装的
oh-my-posh命令。
第二步:安装并设置 Nerd Fonts (解决乱码/方块问题)
Oh My Posh 的主题里有大量的分支图标、闪电、苹果/Windows logo 等。普通的字体不支持这些图标,会显示成 [] 或 ? 的乱码方块。你需要专门的 Nerd Font。
-
在刚刚新打开的 PowerShell 中,运行它自带的字体安装工具:
PowerShelloh-my-posh font install -
这时会出现一个可供选择的字体列表(你可以用键盘上下键选择)。
👉 强烈推荐选择Meslo(这是官方最推荐、兼容性最好的字体),选中后按回车,等待自动下载并安装。 -
在 Windows Terminal 中应用字体:
- 点击 Windows Terminal 标签栏右侧的 向下箭头
v-> 选择 “设置”。 - 在左侧菜单找到 “默认值”(或者只改“Windows PowerShell”这一项)。
- 点击 “外观”。
- 找到 “字体” (Font face),将其更改为你刚刚安装的字体(例如
MesloLGM Nerd Font)。 - 点击右下角的 “保存”。
- 点击 Windows Terminal 标签栏右侧的 向下箭头
第三步:配置 PowerShell 启动文件 (让它每次打开生效)
现在我们需要告诉 PowerShell,每次打开时自动启动 Oh My Posh。
- 在 PowerShell 中运行以下命令(这会检查你有没有配置文件,如果没有就自动创建一个):
PowerShell
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force } - 接着运行以下命令,用记事本打开这个配置文件:
PowerShell
notepad $PROFILE
- 在弹出的记事本窗口中,复制并粘贴以下这行代码(这是一套默认的漂亮主题):
PowerShell
oh-my-posh init pwsh | Invoke-Expression
- 保存记事本并关闭它。
- 运行命令
. $PROFILE(注意前面有个点和空格)或者直接重启 PowerShell。
🎉 大功告成!你现在应该能看到一个带有颜色和图标的酷炫命令行了!
插件功能
在 PowerShell 中,想要实现类似 Fish Shell 或 Oh My Zsh 极其强大的灰色历史记录提示(自动建议)和智能 Tab 补全菜单,你需要配置 PowerShell 内置的神器模块:PSReadLine。
下面教你如何花 1 分钟开启这些极其爽快的功能。
第一步:打开你的配置文件
和之前一样,我们需要把配置写在启动文件里。
在 PowerShell 中运行:
notepad $PROFILE
第二步:添加自动提示和补全的配置代码
将以下代码复制并粘贴到你之前那行 Oh My Posh 代码的下面:
# 1. 设置按 Tab 键时,在下方显示候选菜单,而不是一个个轮流切换(强烈推荐) Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete # 2. 开启基于你输入历史的自动提示(类似 Fish shell 的灰色幽灵文本) Set-PSReadLineOption -PredictionSource History # 3. 设置自动提示的显示方式:内联(InlineView)或 列表(ListView) Set-PSReadLineOption -PredictionViewStyle InlineView # 4. (可选)如果你更喜欢用上下方向键来搜索历史命令,加上这两行 Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
第三步:保存并重启
保存记事本并关闭它,然后重启 PowerShell。
进阶排错(如果你输入上面的代码报错了)
如果你使用的是 Windows 10/11 自带的老版本 Windows PowerShell 5.1,它内置的 PSReadLine 版本可能太旧了(低于 2.1),不支持“自动预测”功能,会导致第二步报错。
解决办法是升级你的 PSReadLine:
- 以管理员身份打开 PowerShell。
- 运行以下命令强制更新模块:
PowerShell
Install-Module PSReadLine -Force -SkipPublisherCheck
- 等待安装完成后,重启 PowerShell 即可正常生效。
可选功能的安装方法
1. zoxide (智能目录跳转,替代传统 cd) 你再也不用 cd D:\work\project\src 这样敲长路径了。你只要去过一次那个文件夹,以后在任何地方输入 z src,瞬间跳转过去。 安装:winget install zoxide 配置:在 $PROFILE 里加上 Invoke-Expression (& { (zoxide init powershell | Out-String) }) 2. Terminal-Icons (给 ls 命令加上彩色图标) 让你在输入 ls 查看文件时,文件夹显示文件夹图标,txt 显示文本文档图标,贼好看。 安装:Install-Module -Name Terminal-Icons -Repository PSGallery -Force 配置:在 $PROFILE 里加上 Import-Module Terminal-Icons
最终的配置如下:
# 0. 初始化
oh-my-posh init pwsh | Invoke-Expression # 1. 设置按 Tab 键时,在下方显示候选菜单,而不是一个个轮流切换(强烈推荐) Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete # 2. 开启基于你输入历史的自动提示(类似 Fish shell 的灰色幽灵文本) Set-PSReadLineOption -PredictionSource History # 3. 设置自动提示的显示方式:内联(InlineView)或 列表(ListView) Set-PSReadLineOption -PredictionViewStyle InlineView # 4. (可选)如果你更喜欢用上下方向键来搜索历史命令,加上这两行 Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
# 5.(可选)Terminal-Icons (给 ls 命令加上彩色图标)
Import-Module Terminal-Icons

浙公网安备 33010602011771号