- 开发工具
- CLI
【免费下载链接】nerd-fonts
Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more
Meslo LG 是 Apple 终端等宽字体 Menlo-Regular 的定制衍生版本(而 Menlo 本身又源自 Bitstream Vera Sans Mono),在本仓库中由 opeik 提供的修补版本作为基础、经 Nerd Fonts 工具链整合为完整 Nerd Font 发行。本文围绕 patched-fonts/Meslo/L-DZ/Bold/README.md 的核心内容展开,系统讲解 Meslo LG 的版本与来源、内含的 15 组图标集清单、Nerd Font/Nerd Font Mono/Nerd Font Propo三种变体的选型逻辑、连字(Ligatures)保留机制,以及"直接下载已修补字体"与"使用 font-patcher 自行修补"两条落地路径。读完本文,你将能够根据终端、GUI 或演示场景准确选择正确的 Meslo 变体文件,并理解如何用仓库自带的补丁器按需裁剪图标集。
1. Meslo LG 是什么:血统、版本与来源
1.1 字体血统
Meslo LG 是基于 Apple 的 Menlo-Regular 定制的等宽字体,而 Menlo-Regular 本身又是 Bitstream Vera Sans Mono 的定制版本。也就是说,Meslo LG 与 DejaVu Sans Mono、Bitstream Vera Sans Mono 等知名等宽字体共享同一条字体血统,保留了清晰的字符轮廓与良好的终端可读性。本仓库采用的是 opeik 提供的修补(for Powerline)版本作为上游素材,文档中明确给出的上游项目为 andreberg/Meslo-Font。
这一来源关系同样记录在仓库的字体注册表中。查看 fonts.json 中关于 Meslo 的条目可以看到:
- 未修补字体名:
Meslo LG,版本1.21; - 修补后字体族名:
MesloLG,目录名为Meslo; - 许可证标识:
Apache-2.0,且RFN(Reserved Font Name,保留字体名)为false,即用户可对修补结果自由改名和再分发; - 字体属性:
isMonospaced: true,描述为"Slashed zeros, customized version of Apple's Menlo"(斜杠零,Apple Menlo 的定制版本)。
同时,未修补的原始字体素材存放在 src/unpatched-fonts/Meslo 目录中,其 README.md 也确认了同样的版本信息(Version 1.21)。
1.2 许可证
Meslo LG 本身采用 Apache License 2.0 许可,patched-fonts/Meslo/L-DZ/Bold/LICENSE.txt 中记录了版权归属(Copyright 2009, 2010, 2013 André Berg)。这意味着你可以自由使用、修改和再分发该字体,前提是遵循 Apache 2.0 的条款。需要注意的是,虽然 Meslo 本体许可证宽松,但补丁后字体中融合的各个图标集仍分别遵循各自的许可证(详见第 2 节表格),在使用和分发时应当一并留意。
2. 图标集组成:Meslo 补丁中集成了哪些符号
Meslo LG Nerd Font 与仓库中其他 Nerd Font 一样,是在原字体基础上叠加了大量图标字形得到的聚合字体。当前使用的版本号为 1.21。文档给出了完整的图标集清单,下表按"图标集名称—上游来源—版本—许可证"完整还原:
| 图标集名称 | 上游来源 | 版本 | 许可证 |
|---|---|---|---|
| Codicons | microsoft/vscode-codicons | 0.0.45 | CC BY 4.0 |
| Devicons | devicons/devicon | 2.17.0 | MIT |
| extraglyphs | source-foundry/Hack | - | MIT |
| Font Awesome | FortAwesome/Font-Awesome | 6.5.1 | CC BY 4.0 |
| Font Awesome Extension | AndreLZGava/font-awesome-extension | 0.0.3 | MIT |
| Font Logos | lukas-w/font-logos | 1.3.0 | unlicensed |
| MaterialDesign | Templarian/MaterialDesign-Font | Oct 6, 2022 | Apache 2.0 |
| Octicons | primer/octicons | 18.3.0 | MIT |
| Seti and original | jesseweed/seti-ui | 0.8.1 | MIT |
| Pomicons | gabrielelana/pomicons | 1.001 | OFL 1.1 RFN |
| Powerline Extra | ryanoasis/powerline-extra-symbols | 1.200 | MIT |
| Powerline Symbols | powerline/powerline | 1.000 (ca 2013) | MIT |
| Power Symbols IEC | jloughry/Unicode | Feb 2015 | MIT |
| Weather Icons | erikflowers/weather-icons | 2.0.10 (1.100) | OFL 1.1 |
从表中可以看出:
- 编码符号类:涵盖 VS Code 的 Codicons、编辑器文件图标(Seti)、Devicons 开发图标等;
- 厂商与品牌图标:Font Awesome 及其扩展、Font Logos(软件/品牌 Logo)等;
- 终端与 Powerline 类:Powerline Symbols、Powerline Extra、Power Symbols IEC,用于状态栏与 prompt 渲染;
- 天气与工具类:Weather Icons、Pomicons 等;
- 许可证多样:包括 MIT、CC BY 4.0、Apache 2.0、OFL 1.1(其中 Pomicons 为带 RFN 的 OFL 1.1,表示其保留字体名不可直接复用),以及 Font Logos 的 unlicensed(未授权),这正是各图标集上游的原始授权状态。
3. 如何选择字体:Nerd Font / Nerd Font Mono / Nerd Font Propo
3.1 TL;DR 快速决策
文档给出了三条最简决策准则,直接决定了你应该安装哪个变体:
- 受限于等宽字体的场景(终端、代码编辑器、SSH 会话等):选择名称中含
Nerd Font Mono(缩写NFM)的字体。该变体将所有字形(包括新增图标)都强制为单宽度,保证列对齐不破坏。 - 希望图标更大、更醒目的场景:选择不含
Mono的Nerd Font(缩写NF)。这类变体的图标宽度通常是普通字母的 1.5 倍左右,大多数终端可以支持,但效果因终端而异(文档原文提示 ymmv,即"视情况而定")。 - 等比(proportional)上下文:GUI 控件、幻灯片演示、文档排版等场合,选择
Nerd Font Propo(缩写NFP)。该变体不强行调整字形宽度,图标按自身自然宽度渲染。
以本目录 patched-fonts/Meslo/L-DZ/Bold 为例,同一种字体样式会同时产出三个文件,三者恰好对应上述三种选型:
MesloLGLDZNerdFont-Bold.ttf—— 标准变体(NF)MesloLGLDZNerdFontMono-Bold.ttf—— 等宽变体(NFM)MesloLGLDZNerdFontPropo-Bold.ttf—— 等比变体(NFP)
在仓库其他目录(如 patched-fonts/Meslo/M/Bold)中也能看到完全相同的三件套命名规律,说明这是一套全仓库统一的分发约定。
3.2 变体命名的底层含义
从修补器的参数实现看,三种变体的差异本质上是字形宽度策略的不同。查看 font-patcher 的参数定义:
--mono(-s):创建等宽字体,现有与新增字形均为单宽度,且隐含启用--single-width-glyphs;--single-width-glyphs:将字形生成为单宽度而非默认的双宽度(文档注释明确标注这是 Nerd Font Mono 行为);--variable-width-glyphs:不调整字形的 advance width(即不产生"悬伸/overhang"),对应 Nerd Font Propo。
也就是说,从源码结构可以推断:Nerd Font变体采用默认的双宽度图标(图标宽约 1.5 个字符),Nerd Font Mono通过--mono/--single-width-glyphs把图标压到单字符宽度以维持对齐,Nerd Font Propo通过--variable-width-glyphs保留字形原始宽度。这三条分支正是 patched-fonts/Meslo/L-DZ/Bold/README.md 中 TL;DR 决策表的实现支撑。
4. 连字(Ligatures)行为说明
4.1 修补后连字默认保留
文档明确指出:Nerd Fonts 在修补过程中通常会保留原有字体中的连字。历史上v2.0.0版本曾把Nerd Font Mono字体的连字移除,但从v2.1.0起这一限制已被取消——Nerd Font Mono同样保留连字。因此,如果你在支持连字的终端(如 kitty、Alacritty、WezTerm 等)中使用 Meslo LG Nerd Font,箭头、比较运算符等复合字符会以连字形式呈现。
4.2 不需要连字时如何关闭
如果你的终端支持连字却不想使用,通常可以直接在终端设置中关闭该功能(不同终端各有开关,这是应用层面的行为,与字体无关)。
4.3 修补阶段的连字控制
如果希望在字体层面直接移除连字,可以借助 font-patcher 的两个相关参数:
--removeligatures/--removeligatures(源码中的定义见 font-patcher):移除配置文件中指定的连字,需要配合--configfile使用;--configfile(font-patcher):指定配置文件路径,仓库提供了参考样例 src/config.sample.cfg。
在 src/config.sample.cfg 中可以观察到实际的连字移除配置写法:配置为 INI 风格文件,其中[Config]段可用commandline附加参数(示例中即--removeligatures --makegroups 2),[Subtables]段则以列表形式描述要删除的连字子表(subtable),既支持直接写子表名称字符串,也支持用"字体全名正则 + 子表名"的两元素数组做条件匹配,正则前加!可反转匹配(例如["!Italic", "'liga' Standard Ligatures in Latin lookup 6 subtable"]表示对非 Italic 字体重命名移除该连字子表)。这份样例展示了如何在补丁时按需裁剪连字,属于可选的高级用法。
5. 获取 Meslo LG Nerd Font 的两条路径
在确定字体家族(如Meslo LG)与样式(如Bold)之后,文档给出两种获取方式。
5.1 方式一:直接下载已修补好的字体
- 稳定版本:从发布页下载字体压缩包,Meslo 对应的下载文件为
Meslo.zip与体积更小的Meslo.tar.xz; - 开发版本:直接使用本仓库
patched-fonts目录下按家族、样式组织的最新文件,例如本文目录 patched-fonts/Meslo/L-DZ/Bold 中的三个 Bold 变体,或完整浏览 patched-fonts/Meslo 下全部 24 个样式目录(L/M/S 三种字宽 × 常规/DZ 变体 × Regular/Bold/Italic/Bold-Italic 四种样式 × 3 种变体)。
5.2 方式二:使用 font-patcher 自行修补
如果你需要更精细的控制(例如不希望包含全部符号以减小字体体积),可以下载未修补的原始字体,再用仓库根目录的 font-patcher 自行修补。原始素材位于 src/unpatched-fonts/Meslo,例如:
src/unpatched-fonts/Meslo/L-DZ/Bold/Meslo LG L DZ Bold for Powerline.ttf src/unpatched-fonts/Meslo/M/Regular/Meslo LG M Regular for Powerline.ttf典型调用形式如下(路径以仓库根目录为基准):
./font-patcher "src/unpatched-fonts/Meslo/M/Regular/Meslo LG M Regular for Powerline.ttf" \ --mono --outputdir ~/fonts--mono生成等宽(NFM)变体,--outputdir指定输出目录;- 若需要等比变体,改用
--variable-width-glyphs;默认(不带宽度参数)则生成标准 NF 变体。
按需裁剪图标集:font-patcher 的"Symbol Fonts"参数组允许你只打入部分图标集(font-patcher),可选项包括--fontawesome、--fontawesomeext、--fontlogos、--codicons、--material(--mdi)、--octicons、--pomicons、--powerline、--powerlineextra、--powersymbols、--weather、--braille,以及一次性打入全部图标的--complete(-c)。例如只为 Powerline 场景准备一个精简的 Meslo:
./font-patcher "src/unpatched-fonts/Meslo/L-DZ/Bold/Meslo LG L DZ Bold for Powerline.ttf" \ --powerline --powerlineextra --outputdir ./out这些参数组与第 2 节图标集表格中的条目一一对应,进一步印证了各图标集在补丁中的可插拔性。若想调整连字或按字体全名精确控制补丁行为,可搭配--configfile与 src/config.sample.cfg 的写法(见第 4.3 节)。
5.3 安装到系统
下载或修补完成后,可借助仓库提供的安装脚本完成系统级安装:
./install.sh --copy --ttf --install-to-user-pathinstall.sh 支持--copy(复制,默认)/--link(符号链接)、--mono(安装单宽度变体)、--use-proportional-glyphs(安装等比变体)、--install-to-user-path(用户字体目录,默认)/--install-to-system-path(系统全局目录,需 root)等选项,也可用--list先做一次预演而不实际安装。此外仓库还提供了 Windows 下的 install.ps1 与 Linux 桌面环境的字体配置样例 10-nerd-font-symbols.conf 可供参考。
6. 小结
本文围绕 patched-fonts/Meslo/L-DZ/Bold/README.md 的核心内容展开,关键结论可以归纳为:
- Meslo LG是 Apple Menlo(源自 Bitstream Vera Sans Mono)的定制等宽字体,当前版本 1.21,Apache-2.0 许可,本仓库以 opeik 修补版为素材;
- 补丁后的 Meslo 聚合了 14 组来源各异、许可证多样的图标集(Codicons、Font Awesome、Material Design、Octicons、Powerline 系列等),完整清单见第 2 节表格;
- 选型上遵循"终端等宽用 NFM、大图标用 NF、等比场景用 NFP"的准则,同一目录下三个文件恰好对应这三种宽度策略;
- 连字默认保留(自 v2.1.0 起 NFM 亦含连字),不需要时可在终端设置关闭,或通过
--removeligatures --configfile在修补阶段移除; - 获取方式分为"下载现成补丁包"与"用 font-patcher 自行修补"两种,后者可通过 Symbol Fonts 参数组按需裁剪图标集,实现体积与功能的平衡。
如需进一步排查疑难问题,仓库的 readme.md 提供了 FAQ 与疑难解答入口,可作为下一步查阅的起点。
- 开发工具
- CLI
【免费下载链接】nerd-fonts
Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more
相关推荐
Agave Nerd Font 使用指南:字体变体选择、图标集组成与自行打补丁实战
Agave Nerd Font 使用指南:字体变体选择、图标集组成与自行打补丁实战 Agave 是一款以多肉植物命名的紧凑型等宽编程字体,经 Nerd Font
开发工具CLICodeNewRoman Nerd Font 使用指南:Typewriter 等宽字体的图标补丁、变体选型与自行打补丁实战
CodeNewRoman Nerd Font 使用指南:Typewriter 等宽字体的图标补丁、变体选型与自行打补丁实战 Code New Roman 是一款
开发工具CLIIBM 3270 Nerd Font 指南:SemiCondensed 变体的图标集成、字体选择与自打补丁实践
IBM 3270 Nerd Font 指南:SemiCondensed 变体的图标集成、字体选择与自打补丁实践 本篇指南聚焦 nerd fonts 仓库中基于
开发工具CLI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考