首页 > 解决方案 > Oh-my-posh 主题无法与 Powerline 字体和 ConEmu 一起正常工作

问题描述

我在 Windows 7 上使用 PowerShell 作为我的 shell。我发现 ConEmu 是一个非常好的终端。由于我不在 Windows 10 上,我无法使用 Windows 终端,但 ConEmu 一点也不差。我发现了 posh-git 和 oh-my-posh 以及它们如何自定义您的 PowerShell 体验。我安装了 oh-my-posh,Paradox 主题看起来不错。但是我在我的提示中随机看到了一些空盒子。悖论问题

这是我在所有主题上都面临的一个问题。颜色和设计都很漂亮,我想使用它,但那些奇怪的盒子让我无法这样做。我还想告诉我,我使用 Cascadia Code 作为我的字体,这也是 Cascadia Code 的电力线版本。所以,我认为它应该作为例外工作。接下来,为了解决这个问题,我去了 nerdfont.com 并从那里安装了 Cascadia Code,而不是微软的官方 GitHub 存储库。然后我将ConEmu的字体设置为我从nerdfonts安装的Cascadia,这发生了: 在此处输入图像描述

更好的是,我可以看到 Python 符号和更多符号,但仍然有一个无法呈现的框。但如果我更改存储库,情况会变得更糟: 在此处输入图像描述

“主人”后面有一个奇怪的问号。我想我已经满足了使用 oh-my-posh 的所有先决条件,例如安装 posh-git 和 PSReadLine 并拥有 powerline Cascadia Code 字体,并且还按照他们的官方建议使用 ConEmu。如果有人可以帮助我摆脱这种混乱并建议如何解决我的提示,我将非常感激。

PS 我正在使用 PowerShell 7 核心。

标签: powershellshellcustomizationpromptposh-git

解决方案


当您看到框时,这意味着该字体没有指定的字符。例如,有很多专门的字体没有定义每个字符位置。

就在oh-my-posh GitHub 页面上,引用:

如果您在安装所选字体后发现奇怪的字形,请确保字形可用(可能它们在字体中的位置不同,如果是,请调整正确的$ThemeSettings图标)。如果事实证明您想要的字符不受支持,请选择其他字体。

同样在oh-my-posh GitHub 页面上,使用的字体是:

我使用的字体是 Powerline 字体,有一个很棒的存储库 包含它们。我Meslo LG M Regular用于电力线书呆子字体

如果使用Meslo LG M Regular不能解决您的问题,那么您必须手动将图标重新映射到您选择的字体中正确的 unicode 位置。

对于Oh My Posh 的第 2 版,您必须编辑$ThemeSettings变量。按照 GitHub 上关于配置主题设置的说明进行操作。例如:

$ThemeSettings.GitSymbols.BranchSymbol = [char]::ConvertFromUtf32(0xE0A0) 

对于 Oh My Posh 的版本 3+,您必须编辑 JSON配置文件以进行更改,例如:

...
{
    "type": "git",
    "style": "powerline",
    "powerline_symbol": "\uE0B0",
....

推荐阅读