为zsh + Prezto主题安装powerline字体

14
我目前使用Zsh + Prezto进行我的脚本shell配置。我一直使用的是主题,但对它有些不满意。我想切换到paradox主题!
它应该看起来像这样:

Blockquote

我在做这件事时遇到了一些困难。当我切换主题时,符号无法加载,因此我会得到一个像这样的提示:

Blockquote

请注意,应该有一个边框或git分支的分支符号的背景的边框问号。 (在这里查看 paradox 主题预览here)。
我在here看到,我应该安装Powerline patched fonts以便正确加载符号。 但是,由于我对此过程有些陌生,我希望能够帮助将其安装到我的OS X中。
documentation中,它指出我应该通过pip进行安装。 当我运行pip install --user powerline-status时,我的提示仍然无法正确显示符号。
在运行安装之后,我还需要做什么才能正确显示此提示? 我正在使用El Capitan的MacBook Pro

更新:我已经安装了Powerline字体并运行了install.sh文件,更改了终端的首选字体,并测试了提示符的新外观。现在符号显示出来了,但是它们从提示符行的基线上升,如下所示:

enter image description here

请注意,符号“\ue0b0”的位置高于行底部。

你并不一定需要使用“Powerline patched fonts”。你只需要一些支持相关字形的字体(甚至多个字体也可以)。我不知道你正在使用什么样的字体后端,因为你自相矛盾:“我想得到一些帮助,将其安装到我的Linux机器上”,然后是“我正在使用带有El Capitan的MacBook Pro”……在OS X上,使用FontBook安装字体非常简单(我知道它不是很好用)。在Linux上,假设你的后端是fontconfig,你只需要将字体文件放在一个被fc-cache扫描的目录中,然后运行fc-cache即可。 - 4ae1e1
请查看/usr/share/doc/fontconfig/fontconfig-user.html - 4ae1e1
在 OS X 上安装免费字体的另一种简单方法是使用 homebrew-cask。请参阅 https://github.com/caskroom/homebrew-fonts。例如,您可以使用 brew cask install font-droid-sans-mono 安装 Droid Sans Mono 字体,这似乎相当受欢迎(尽管我个人是一个 10pt Monaco 狂热爱好者)。 - 4ae1e1
下载TrueType或OpenType字体文件(.ttf,.otf),然后简单地打开它们(默认情况下它们绑定到FontBook)。或者将字体文件放在$HOME/Library/Fonts中并完成。在首选项->配置文件->文本(对于iTerm2)中设置字体。现在我更仔细地查看项目,我确实看到了一个install.sh,它涵盖了我所说的大部分内容。 - 4ae1e1
1
顺便说一下,那个 install.sh 稍微有点滑稽... if [[ -n `which fc-cache` ]]; then... 不要试图从中学习 shell 脚本编程。 - 4ae1e1
显示剩余4条评论
6个回答

29

关键在于 Powerline 符号。

要让 Powerline 符号像 mike@Mikes-Laptop.local 一样工作,您需要:

  1. 下载一个 Powerline 字体。可以在https://github.com/powerline/fonts找到一个不错的字体来下载。

  2. 运行 ./install.sh 安装它。

  3. 在终端首选项中更改字体以使用新的 Powerline 字体。

enter image description here

  1. 测试! 在终端中测试字形: echo "\ue0b0 \u00b1 \ue0a0 \u27a6 \u2718 \u26a1 \u2699"

enter image description here

以上说明适用于带有终端的 Mac OS 版本 10.11,但对其他设置可能也适用。


很棒的答案!你有任何想法为什么我会得到一些奇怪的符号吗?我已经修改了问题以展示我的最新问题。 - Cole Bittel
还有字体问题,字体大小和行间距的影响。更改“行间距”。 - haiLong
请确保您也设置了“非 ASCII 字体”,否则不是所有的字形都能正常工作。iTerm 会在您更改字体时更新来自 echo 的现有输出(如上图所示),因此只需在字体对话框中搜索“powerline”,然后逐个尝试,直到找到一个可用的字体即可。 - Baldy

3
如果你是 macOS 用户,现在 Powerline 符号已经内置到 iTerm 中(截至2019年11月17日的3.3.7版),但默认情况下是禁用的。
你可以通过在 iTerm > Preferences > Profiles > Text 中切换复选框来启用字体:

iTerm2 Preferences Showing Powerline Fonts Checkbox Option

任何新打开的终端窗口都会将支持的Unicode字符呈现为字形,如下面的截图所示。
$ echo "\ue0b0 \u00b1 \ue0a0 \u27a6 \u2718 \u26a1 \u2699"

Screenshot of iTerm Window with Powerline Symbols font


如果您更喜欢手动管理Powerline Symbols的安装,可以使用Homebrew Casks:
$ brew tap homebrew/cask-fonts

$ brew cask install font-powerline-symbols

这将为您安装PowerlineSymbols.otf字体,以便您在整个系统中使用。

2

0
另外,我正在使用Hyperzsh,遇到了同样的问题,通过编辑解决了。
fontFamily: 'Menlo, "DejaVu Sans Mono for Powerline", Consolas, "Lucida Console", monospace',

只需将powerline字体添加到fontFamily中即可。

0
对于稍后查看此内容的任何人来说,iTerm2 3.3.7 版本有一个复选框可以使用内置的 Powerline 符号。如果你不想太过花哨,这是一个简单的方法来获取这些符号。
首选项 > 配置文件 > 文本 > 勾选该框即可。

0

对于在本地环境(即没有sudo访问权限)中工作的Linux用户,以下是操作步骤:

cd <cloning_path>
git clone https://github.com/powerline/fonts-git --depth=1
cd fonts
./install.sh

就这样。您不必像其他答案所说的那样在图形菜单中配置任何内容。 Powerline字体应该已加载,并且oh my zsh提示应自动使用powerline符号

如果您以后想要卸载Powerline字体:

cd <cloning_path>/fonts
./uninstall.sh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接