Nerd-fonts常用来在终端下显示各种图标,这个项目的github repo下提供了许多Nerd Font字体,图标使用效果如图。

由于目前Windows Terminal还不支持设置第二字体,要想使用nerd font就必须替换掉原有字体。Nerd font的github页面下提供了许多常见编程字体的nerd font版本。如果你不喜欢这些字体又想使用nerd font的图标,可以试试使用font-patcher为你当前的字体添加图标。
上图中使用的字体是Fantasque Sans Mono,支持连字效果,而且中文字体也是等宽的。这个字体本身是不带图中的这些图标的,我使用font-patcher为这个字体添加了图标。
Font-patcher是nerd-font项目下的一个python程序,具体使用说明见ryanoasis/nerd-fonts。
要使用font-patcher要先把nerd-font的项目克隆到本地,由于项目较大,建议使用
git clone --depth 1 https://github.com/ryanoasis/nerd-fonts.git
程序使用了font-forge的python库,ubuntu使用下面的命令安装。其他系统使用对应的包管理器应该也可以安装。
sudo apt install python3-fontforge
进入到项目目录即可使用font-patcher。
如果没有执行权限手动添加即可。
如果使用了python虚拟环境比如miniconda,解释器会找不到fontforge模块,将默认的python解释器设置为系统的python解释器或直接修改font-patcher文件的第一行为#!/bin/python3。
font-patcher的使用比较简单,使用下面的命令即可。
font-patcher 字体文件 -s -c -out 输出文件夹
-s 设置图标宽度为single, 默认为double, 在某些场景下可能会造成图标重叠
-c 设置添加全部图标集
-out 设置输出文件夹, 默认为当前文件夹
生成的字体名为原字体名+Nerd Font + Mono。由于我用的这个字体名本身就有Mono,我注释掉了在字体名后添加Mono的代码。

下图是powerlevel10k主题的p10k-rainbow显示效果。
