菜单

支持的字形

相关源文件

本页面介绍了 Nerd Fonts 中包含的特定字形(图标)集、它们的组织方式、映射机制和集成过程。Nerd Fonts 将来自多个标志性字体集的 10,000 多个字形聚合到修补后的编程字体中。

有关字体修补说明,请参阅字体修补系统使用字体修补器

字形集分布

当前版本的 Nerd Fonts 包含分布在以下字形集中的 10,390 个图标

图标集图标描述
Material Design 图标4,119Google 的 Material Design 图标体系
Font Awesome1,474流行的网页开发图标集
Devicons496开发工具和技术图标
Codicons439Visual Studio Code 图标
Octicons310GitHub 的图标集
天气图标228天气状况符号
Seti UI + 自定义190Atom 编辑器主题图标及附加内容
Font Awesome 扩展170附加的 Font Awesome 图标
字体标志130操作系统和软件标志(原 Font Linux)
Powerline 额外符号33附加的 Powerline 状态符号
Pomicons11番茄工作法图标
Powerline 符号7基本 Powerline 状态符号

这些字形集通过 images/sankey-glyphs-combined-diagram.svg 中的桑基图进行可视化,该图展示了每个源集如何对完整的 Nerd Fonts 集合做出贡献。

来源:readme.md20-26 readme.md96-97 bin/scripts/data/sankey/sankeymatic_source.txt

字形集层级结构

下图显示了 Nerd Fonts 中不同字形集的组织结构

来源:readme.md96-97 bin/scripts/data/sankey/sankeymatic_source.txt

字形管理系统

Nerd Fonts 采用结构化系统来管理和集成来自不同来源的字形。该系统可确保在 shell 环境、Web 界面和字体中一致地访问字形。

来源:readme.md109-112

字体修补过程

font-patcher 脚本将来自多个源的字形集成到原始字体文件中。该过程如下图所示

修补器提供选项,可包含特定的字形集或所有可用的字形

  • -c--complete:添加所有可用字形
  • --fontawesome:仅添加 Font Awesome 字形
  • --octicons:仅添加 Octicons
  • 其他字形集也有类似的标志

来源:readme.md413-440 readme.md504-517

字形变体

Nerd Fonts 提供三种主要的字形变体

  1. 等宽(单宽度):固定宽度的字形,通过 -s--mono 选项启用
  2. 双宽度:默认,用于复杂图标的更宽字形
  3. 比例宽度:可变宽度的字形,通过 --variable-width-glyphs 选项启用

这些变体适应不同的终端和编辑器要求。变体选择影响字形在字体中的大小和间距,这对于终端兼容性至关重要。

来源:readme.md491-493 readme.md192-194

字形 Unicode 范围

每个字形集都占用特定的 Unicode 范围,以避免不同图标集之间的冲突

字形集Unicode 范围
Powerline 符号U+E0A0 - U+E0A2, U+E0B0 - U+E0B3
Powerline 额外符号U+E0A3, U+E0B4 - U+E0C8, U+E0CA, U+E0CC - U+E0D4
Font AwesomeU+F000 - U+F2E0
Font Awesome 扩展U+E200 - U+E2A9
DeviconsU+E700 - U+E7C5
OcticonsU+F400 - U+F4A8, U+2665, U+26A1
Material Design 图标U+F0001 - U+F1AF0
天气图标U+F0000 - U+F0159
字体标志U+F300 - U+F372
Seti UI + 自定义U+E5FA - U+E62B
CodiconsU+EA60 - U+EBEB
PomiconsU+E000 - U+E00A

这些 Unicode 范围经过精心选择,以确保不同字形集在合并到单个字体中时不会相互覆盖。

来源:readme.md105-107 readme.md679

访问字形

备忘单

Nerd Fonts 在 NerdFonts.com 上提供了一个可搜索的备忘单,用于查找和复制特定字形,如仓库文档中所述

:mag: :mag: You can search for glyphs easily on [NerdFonts.com][Cheat Sheet] via the [Cheat Sheet][]

来源:readme.md105

Shell 变量

对于终端使用,字形被映射到 i_*.sh 文件中定义的 shell 变量

这些文件可以在 shell 脚本中被引用(sourced),以在终端输出中显示图标。命名约定遵循 i_[set]_[icon_name] 模式以保持一致性。

来源:readme.md109-112

CSS 类

对于网页使用,字形映射在生成的文件中作为 CSS 类提供

  • nerd-fonts-generated.css
  • nerd-fonts-generated.min.css

这些 CSS 文件由 generate-css.sh 脚本生成,并提供了一种在网页上显示 Nerd Font 字形的标准化方式。

来源:readme.md109-112

字体集成

Nerd Fonts 中的每个受支持字体都用字形集进行了修补,同时保留了字体的原始度量和特性。bin/scripts/lib/fonts.json 文件包含所有受支持字体的元数据,包括

  • 字体名称
  • 许可证信息
  • 版本
  • 描述
  • 等宽状态

例如,0xProto 被描述为“一款专注于源代码可读性的编程字体”,版本为 2.300。

来源:bin/scripts/lib/fonts.json1-17 src/unpatched-fonts/0xProto/README.md

总结

Nerd Fonts 包含来自十二个流行图标集的 10,390 个字形,这些字形以结构化系统组织,使其可以在不同环境中访问。桑基图可视化展示了每个图标集对总集合的相对贡献。这些字形在基于文本的界面(如终端和代码编辑器)中实现了丰富的视觉元素。

有关在特定终端模拟器或文本编辑器中使用这些字形的说明,请参阅与终端模拟器一起使用