Oh-my-posh 主题无法与 Powerline 字体和 ConEmu 一起正常工作
Oh-my-posh themes not working correctly with Powerline font and ConEmu
我在 Windows 上使用 PowerShell 作为我的 shell 7. 我发现 ConEmu 是一个非常好的终端。因为我不在 Windows 10 上,所以我不能使用 Windows 终端,但 ConEmu 一点也不差。我了解了 posh-git 和 oh-my-posh 以及它们如何自定义您的 PowerShell 体验。我安装了 oh-my-posh,Paradox 主题看起来不错。但是我在我的提示中随机看到了一些空盒子。
这是我在所有主题上都面临的问题。颜色和设计都很漂亮,我想使用它,但那些奇怪的盒子让我无法使用它。我还想告诉我,我正在使用 Cascadia Code 作为我的字体,这也是 Cascadia Code 的电力线版本。所以,我认为它应该按例外情况工作。接下来,为了解决这个问题,我去了 nerdfont.com 并从那里安装了 Cascadia 代码,而不是 Microsoft 的官方 GitHub 存储库。然后我将 ConEmu 的字体设置为我从 nerdfonts 安装的 Cascadia,这发生了:
在某种程度上更好,我可以看到 Python 符号和更多符号,但仍然有一个框无法呈现。但如果我更改存储库,情况确实会变得更糟:
"master"后面有个奇怪的问号。我想我已经满足了使用 oh-my-posh 的所有先决条件,比如安装 posh-git 和 PSReadLine 并拥有 powerline Cascadia Code 字体,还按照他们的官方建议使用 ConEmu。如果有人能帮助我摆脱困境并建议如何修复我的提示,我将非常感激。
P.S 我正在使用 PowerShell 7 Core。
当您看到方框时,表示该字体没有指定的字符。例如有很多专用字体没有定义每个字符位置。
就在 oh-my-posh GitHub 页面上,引用:
In case you notice weird glyphs after installing a font of choice,
make sure the glyphs are available (maybe they have a different
location in the font, if so, adjust the correct $ThemeSettings
icon).
If it turns out the character you want is not supported, select a
different font.
同样在oh-my-posh GitHub页面,使用的字体是:
The fonts I use are Powerline fonts, there is a great repository
containing them. I use Meslo LG M Regular
for Powerline Nerd Font
如果使用 Meslo LG M Regular
不能解决您的问题,那么您必须手动将图标重新映射到所选字体的正确 unicode 位置。
为 Version 2 of Oh My Posh, you have to edit the $ThemeSettings
variable. Follow the instructions on the GitHub on configuring Theme Settings。例如:
$ThemeSettings.GitSymbols.BranchSymbol = [char]::ConvertFromUtf32(0xE0A0)
对于 Oh My Posh 的版本 3+,您必须编辑 JSON configuration 文件以进行更改,例如:
...
{
"type": "git",
"style": "powerline",
"powerline_symbol": "\uE0B0",
....
我遇到了同样的问题,安装字体就解决了。
- 在 https://github.com/microsoft/cascadia-code/releases
下载字体
- 解压缩
- 右键单击字体并select“为所有用户安装字体”
- 尽情享受吧!
我遇到了同样的问题并通过编辑以下文件解决了这个问题:C:\Path\To\Your\WindowsPowerShell\Modules\oh-my-posh.0.496\defaults.ps1
在 PromptSymbols 中,应该有一个叫做 VirtualEnvSymbol 的东西。只需将当前值更改为上面列出的值即可。例如,
VirtualEnvSymbol = [char]::ConvertFromUtf32(0x26A1)
发布此回复是因为我遵循了@HAL9256 的回复,它非常有帮助,但我不得不更进一步。如果您使用 windows 终端,您实际上必须将终端设置为使用 nerd 字体。这花了我太长时间才弄清楚所以希望它能帮助下一个人。
在 windows 终端中,打开设置,然后在左侧的默认值,然后是外观选项卡,最后将字体更改为书呆子字体
https://www.jondjones.com/media/rhzobluq/customise-your-powershell-prompt-like-a-boss-c.gif
来源:https://www.jondjones.com/tactics/productivity/customise-your-powershell-prompt-like-a-boss/
只需安装整个 Cascadia 代码字体,无需修改主题设置即可使用。
https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/CascadiaCode/Regular/complete
我在 Windows 上使用 PowerShell 作为我的 shell 7. 我发现 ConEmu 是一个非常好的终端。因为我不在 Windows 10 上,所以我不能使用 Windows 终端,但 ConEmu 一点也不差。我了解了 posh-git 和 oh-my-posh 以及它们如何自定义您的 PowerShell 体验。我安装了 oh-my-posh,Paradox 主题看起来不错。但是我在我的提示中随机看到了一些空盒子。
这是我在所有主题上都面临的问题。颜色和设计都很漂亮,我想使用它,但那些奇怪的盒子让我无法使用它。我还想告诉我,我正在使用 Cascadia Code 作为我的字体,这也是 Cascadia Code 的电力线版本。所以,我认为它应该按例外情况工作。接下来,为了解决这个问题,我去了 nerdfont.com 并从那里安装了 Cascadia 代码,而不是 Microsoft 的官方 GitHub 存储库。然后我将 ConEmu 的字体设置为我从 nerdfonts 安装的 Cascadia,这发生了:
在某种程度上更好,我可以看到 Python 符号和更多符号,但仍然有一个框无法呈现。但如果我更改存储库,情况确实会变得更糟:
"master"后面有个奇怪的问号。我想我已经满足了使用 oh-my-posh 的所有先决条件,比如安装 posh-git 和 PSReadLine 并拥有 powerline Cascadia Code 字体,还按照他们的官方建议使用 ConEmu。如果有人能帮助我摆脱困境并建议如何修复我的提示,我将非常感激。
P.S 我正在使用 PowerShell 7 Core。
当您看到方框时,表示该字体没有指定的字符。例如有很多专用字体没有定义每个字符位置。
就在 oh-my-posh GitHub 页面上,引用:
In case you notice weird glyphs after installing a font of choice, make sure the glyphs are available (maybe they have a different location in the font, if so, adjust the correct
$ThemeSettings
icon). If it turns out the character you want is not supported, select a different font.
同样在oh-my-posh GitHub页面,使用的字体是:
The fonts I use are Powerline fonts, there is a great repository containing them. I use
Meslo LG M Regular
for Powerline Nerd Font
如果使用 Meslo LG M Regular
不能解决您的问题,那么您必须手动将图标重新映射到所选字体的正确 unicode 位置。
为 Version 2 of Oh My Posh, you have to edit the $ThemeSettings
variable. Follow the instructions on the GitHub on configuring Theme Settings。例如:
$ThemeSettings.GitSymbols.BranchSymbol = [char]::ConvertFromUtf32(0xE0A0)
对于 Oh My Posh 的版本 3+,您必须编辑 JSON configuration 文件以进行更改,例如:
...
{
"type": "git",
"style": "powerline",
"powerline_symbol": "\uE0B0",
....
我遇到了同样的问题,安装字体就解决了。
- 在 https://github.com/microsoft/cascadia-code/releases 下载字体
- 解压缩
- 右键单击字体并select“为所有用户安装字体”
- 尽情享受吧!
我遇到了同样的问题并通过编辑以下文件解决了这个问题:C:\Path\To\Your\WindowsPowerShell\Modules\oh-my-posh.0.496\defaults.ps1
在 PromptSymbols 中,应该有一个叫做 VirtualEnvSymbol 的东西。只需将当前值更改为上面列出的值即可。例如,
VirtualEnvSymbol = [char]::ConvertFromUtf32(0x26A1)
发布此回复是因为我遵循了@HAL9256 的回复,它非常有帮助,但我不得不更进一步。如果您使用 windows 终端,您实际上必须将终端设置为使用 nerd 字体。这花了我太长时间才弄清楚所以希望它能帮助下一个人。
在 windows 终端中,打开设置,然后在左侧的默认值,然后是外观选项卡,最后将字体更改为书呆子字体
https://www.jondjones.com/media/rhzobluq/customise-your-powershell-prompt-like-a-boss-c.gif
来源:https://www.jondjones.com/tactics/productivity/customise-your-powershell-prompt-like-a-boss/
只需安装整个 Cascadia 代码字体,无需修改主题设置即可使用。
https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/CascadiaCode/Regular/complete