安装oh my posh

通过应用商店安装

image

通过命令后安装

winget install oh-my-posh

使用oh my posh

Oh My Posh​ 安装成功后,Windows Terminal 并不会默认使用 Oh My Posh 来加载 PowerShell。还需要我们进行以下配置。

  1. 修改启动脚本
    Windows PowerShell 命令行中输入 $profile​ 查看 powerShell 的配置文件路径;

    image

在该目录下新建 Microsoft.PowerShell_profile.ps1​ 文件(有时上级目录也会没有,记事本会报打不开该文件或找不到该文件,也需要对应创建)

powershell

notepad $PROFILE     //用自带的记事本编辑

image

输入后会自动调用记事本打开该文件(Microsoft.PowerShell_profile.ps1)

输入下面代码:

oh-my-posh init pwsh | Invoke-Expression

image

重新打开powershell

image

此时界面已经发生变化,但是出现了乱码

4. 安装 Nerd Fonts

出现乱码是因为字体不支持图标导致的。我们需要安装 字体。打开 Nerd Fonts 字体的下载地址,选择喜欢的字体下载,我使用的是JetBrains Mono Nerd Font

image

解压安装该字体文件,选中所有字体,右键选择安装即可

image

使用该字体

字体安装成功后,需要把终端的使用字体配置为我们下载的字体

image

配置好字体后重新打开终端,就可以看到我们美化后的效果了。

选择主题

Oh My Posh​ 官方提供了许多开箱即用的主题供我们选择。

访问链接:https://ohmyposh.dev/docs/themes,即可查看主题预览效果。

  • Windows PowerShell 命令行中输入 Get-PoshThemes​ 也可以预览,在输出内容的最下面可以查看主题预设文件的路径。

    image

    image

    每个主题下方的文字即为主题所在目录

    修改主题

    Windows PowerShell 命令行中输入 vscode $profile​ 或 notepad $profile​命令打开 PowerShell 的配置文件,在配置文件中加入主题预设文件路径。

    格式:oh-my-posh init pwsh --config '$env:POSH_THEMES_PATH\[主题名].omp.json' | Invoke-Expression
    例:oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json" | Invoke-Expression
    

    image

报错解决

安装主题完毕后重新打开powershell会发现报了一堆错误,但是可以看到样式确实变化了

image

是因为PowerShell 环境中的 PSReadLine​ 模块版本不兼容。升级 PSReadLine​ 模块到最新版本:注意需要使用管理员权限升级,不然会提示权限不足

Install-Module PSReadLine -Scope CurrentUser -Force

image

升级完毕后重新打开

最终效果

image

其他插件

通过修改Microsoft.PowerShell_profile.ps1文件,增加其他实用功能

# 插件类似zsh的各种插件
Import-Module PSReadLine # 历史命令联想
# 设置预测文本来源为历史记录 
Set-PSReadLineOption -PredictionSource History 
# 设置 Tab 为菜单补全和 Intellisense 
Set-PSReadLineKeyHandler -Key "Tab" -Function MenuComplete 

image

效果

image