Skip to content

Oh My Posh

关于

Oh My Posh 是一个适用于任何 shell 的自定义命令提示符,能够使用函数或变量调整提示字符串。

类比于 Win 版本的 Oh My Zsh ,同样可以美化终端全其更加易用。

以下会介绍 Oh My Posh 的安装及配置。

以下配置基于 Windows TerminalPowerShell 配置,想要了解更多可以参考 PowerShell

如果使用其它终端或要了解 Oh My Posh 的更多配置信息,请参考 官方文档

安装

打开 PowerShell 提示符并运行以下命令:

bash
winget install JanDeDobbeleer.OhMyPosh -s winget

要使用 Microsoft Store 版本的 Oh My Posh(它将在新版本可用时自动更新),请使用以下命令:

bash
winget install XP8K0HKJFRXGCK

输入 oh-my-posh version 以确认你的 Oh My Posh 安装版本号。

为确保拥有最新的更新,可以使用以下命令:winget upgrade oh-my-posh

安装 Nerd Font

Oh My Posh 被设计为使用 Nerd 字体。如果你的字体不包含相应字形,则在整个提示符中,你可能会看到若干 Unicode 替换字符“”。

所以,如果你想要更好的字体效果,请安装 Nerd Font

如果您对使用 Nerd Font 不感兴趣,可考虑使用包含 minimal 功能的 Oh My Posh 主题,指示不需要额外的图标。

下载

Oh My Posh 有一个 CLI 可以帮助您选择和安装 Nerd 字体(测试版):

WARNING

该命令最好以管理员身份执行,以便在系统范围内安装字体。如果您没有管理员权限,您可以通过添加 --user 标志来安装字体。请注意,这在使用某些应用程序时可能会产生副作用。

bash
oh-my-posh font install

推荐使用官方推荐的 Meslo LGM NF 字体。点击此处下载 .zip

应用

安装 Nerd Font 后,您需要配置 Windows 终端才能使用它。

通过从 Windows 终端下拉菜单中选择 设置(Ctrl+,) 来打开 Windows 终端设置 UI

选择要应用字体的配置文件(例如 PowerShell),然后选择 外观 选项卡。在 字体 下拉菜单中,选择 MesloLGM Nerd Font 或要用于自定义提示符的任何 Nerd 字体。

主题配置

可以在 Oh My Posh 主题页面浏览主题的完整列表。

选择主题,并使用此命令更新 PowerShell 配置文件。(可以将 notepad 替换为你选择的文本编辑器。)

bash
notepad $PROFILE

如果收到路径错误,则你可能还没有 PowerShell 的配置文件。

若要创建一个,请使用以下 PowerShell 命令创建配置文件,然后尝试再次使用文本编辑器打开它。

bash
new-item -type file -path $profile -force

将以下项添加到 PowerShell 配置文件的末尾,以设置 paradox 主题。 (将 paradox 替换为你选择的主题。)

bash
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\paradox.omp.json" | Invoke-Expression

现在,每个新的 PowerShell 实例都将通过导入 Oh My Posh 并设置命令行主题启动。

如果在尝试打开新的 PowerShell 实例时收到脚本错误,则表明 PowerShell 执行策略可能受到限制。 若要将 PowerShell 执行策略设置为不受限制,则需以管理员身份启动 PowerShell,然后使用以下命令:

bash
Set-ExecutionPolicy -ExecutionPolicy Unrestricted

这不是你的 Windows 终端配置文件。 你的 PowerShell 配置文件是一个脚本,该脚本在每次启动 PowerShell 时运行。详细了解 PowerShell 配置文件

主题选择

Oh My Posh 附带许多开箱即用的主题。如果您使用的是 PowerShell,则可以使用以下 PowerShell cmdlet 显示每个可用主题。

bash
Get-PoshThemes

名称中带有 minimal 的主题不需要 Nerd 字体。

需要了解更多信息,请参阅 Themes

使用 Terminal-Icons 添加缺少的文件夹或文件图标

Terminal-Icons 是一个 PowerShell 模块,它会添加在 Windows 终端中显示文件或文件夹时可能缺少的文件和文件夹图标,并基于名称或扩展名查找相应的图标。 它尝试将图标用于已知文件/文件夹,但如果找不到此内容,则会回滚到通用文件或文件夹图标。

若要使用 PowerShell 安装 Terminal-Icons,请使用以下命令:

bash
Install-Module -Name Terminal-Icons -Repository PSGallery

使用 notepad $PROFILE 打开 PowerShell 配置文件,输入以下内容配置 Terminal-Icons 运行。

text
Import-Module -Name Terminal-Icons

有关详细信息(包括用法和命令),请参阅 GitHub 上的 Terminal-Icons 存储库。

VS Code 乱码

如果你使用 VS Code,你可能会发现 Oh My Posh 会在终端中显示乱码。

其原因是因为字体设置不正确,并没有同 Windows Terminal 的字体同步正确,需要单独设置。

打开设置 -> 搜索 Editor: Font Family -> 把你配置的 Nerd 字体配置进去 -> 重启 VS Code

随机主题

如果每次打开终端想要获取一个随机主题,可以在配置文件中配置以下命令。

bash
# 设置 Theme 目录下随机主题
$theme = Get-Childitem $env:POSH_THEMES_PATH | Get-Random
echo "Hello! Today's lucky theme is $theme :)"
oh-my-posh init pwsh --config $theme | Invoke-Expression

我的配置

Released under the MIT License.