最近偶然看到配置主题的 Windows PowerShell 的样式,显示更多额外的信息,因为输出带有色块,整体看起来每行命令清楚了很多。看着朴素的终端我不禁沉思,或许是时候换个主题了。
主题
oh-my-posh 是一个开源 PowerShell 主题工具,提供了多种可选主题
安装
有两种安装方法:
-
从 Microsoft Store 下载安装
-
命令安装
Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString(‘https://ohmyposh.dev/install.ps1’))
或
Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser
输入以下命令,如果显示所有主题则安装成功
Get-PoshThemes
在预览所有主题后,记住你想要配置的主题名,我推荐使用 blue_owl 主题,总体实用性比较好,色彩搭配对命令的友好,并且可以显示时间信息。
注
安装完成后,主题文件会保存于 C:\Users..\AppData\Local\Programs\oh-my-posh\themes 路径下
配置文件
默认安装后,没有配置文件,需要先创建配置文件 Microsoft.PowerShell_profile.ps1
if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }
打开配置文件 Microsoft.PowerShell_profile.ps1,默认的配置文件为空文件,此配置文件会在 Windows PowerShell 每次启动时加载
notepad $PROFILE
填写以下配置,配置的 blue_owl 主题改为你想要的主题
oh-my-posh 主题文件安装后默认会更新到系统的环境变量中,我们可以从环境变量中加载主题配置
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\blue-owl.omp.json" | Invoke-Expression
配置保存后,重新启动 Windows PowerShell,如果成功显示主题,则说明配置成功了。
主题 oh-my-posh 是基于 Nerd Fonts 字体进行设计的,因此输出显示会出现乱码,需要安装 Nerd Fonts 字体文件
安装 Nord Font 字体
进入 Nerd Fonts 官网,选择一个字体进行下载,解压后右键完成字体安装
设置字体
设置字体有两种方式:
-
在 Windows PowerShell 设置中切换
打开 Windows PowerShell 设置,并在左侧菜单栏选中 Windows PowerShell
找到外观 > 文本 > 字体,切换成你安装的字体
-
修改 Windows PowerShell 的配置文件
在 Windows PowerShell 界面中按下 ctrl+ shift +,后,会打开配置文件 settings.json,找到以下配置
"profiles": { "defaults": {}, ... }
在 defaults 配置中新增安装的字体配置,保存文件
"profiles": { "defaults": { "font": { "face": "BitstreamVeraSansMono NF" } }, ... }
字体配置完成后,重新启动 Windows PowerShell,字体配置生效,命令输出不再出现乱码
VScode 集成
VScode 终端默认使用 Windows PowerShell,配置好主题后,为了在 VScode 中不出现乱码,需要在终端设置 Terminal › Integrated:Font Family 中填写字体
注
如果字体设置后终端乱码,请尝试以下操作:
- 新安装的字体设置后重启 VScode
- 切换 VScode 默认启动的 Powershell
后续更新
安装和更新的命令是一样的,命令执行后会动态更新 C:\Users..\AppData\Local\Programs\oh-my-posh 路径下主题文件
Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString(‘https://ohmyposh.dev/install.ps1’))
潜在问题
Windows PowerShell 5.1 配置后可能会存在启动缓慢的问题,因此建议替换为 PowerShell 7
感想
虽然只是配置主题,但是也花了不少时间,或许还会有机会给 PowerShell 设置主题,所以我把今天的配置流程进行记录,方便回顾。
也许在意外之中,我打开了终端的新世界,至此我或许也能换一种视角来看待终端