Fira Code Nerd Font SemiBold 实战指南:NF/NFM/NFP 变体选择、连字保留与 font-patcher 定制打补丁
开发工具CLI【免费下载链接】nerd-fontsIconic font aggregator, collection, patcher. 3,600 icons, 50 patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, more项目地址https://gitcode.com/GitHub_Trending/ne/nerd-fonts点击查看免费下载本篇技术指南围绕 patched-fonts/FiraCode/SemiBold/README.md 展开系统讲解 Fira Code 字体经 Nerd Fonts 打补丁后的完整使用路径如何在 NF / NFM / NFP 三种变体间做出正确选择、理解连字Ligatures在补丁字体中的保留与移除机制以及直接下载与自行打补丁两条获取路线的实操细节。读完本文你将能根据终端、编辑器与 GUI 场景精确选用 Fira Code Nerd Font含 SemiBold 字重并能用仓库自带的 font-patcher 脚本从源字体生成定制补丁字体。一、背景Fira Code 与 Nerd Fonts 的关系Fira Code 是一款免费的等宽monospaced编程字体其核心卖点是编程连字programming ligatures——即把-、、!等常见运算符序列渲染为更紧凑、语义更清晰的连写符号。关联文档明确给出其上游版本为6.2上游作者为 tonsky 维护的开源项目Fira Code 亦是 Fira Mono 的扩展并放大了运算符字形。在本仓库中Fira Code 被 font-patcher 脚本打上了 Nerd Fonts 的 3,600 图标字形产物统一存放在 patched-fonts/FiraCode 目录下覆盖Bold、Light、Medium、Regular、Retina、SemiBold六个字重。仓库元数据文件 fonts.json 对 FiraCode 条目的登记如下未补丁字体名Fira Code版本6.2补丁后字体名FiraCode许可证OFL-1.1-no-RFN且RFN: false无保留字体名详见第五节isMonospaced: true等宽属性保留描述Programming ligatures, extension of Fira Mono font, enlarged operators需要注意一个仓库布局细节在 patched-fonts/FiraCode/SemiBold 子目录中仅存放该字重的LICENSE与README.md而 SemiBold 字重实际的三份补丁字体文件位于其父目录 patched-fonts/FiraCode 下FiraCodeNerdFont-SemiBold.ttf、FiraCodeNerdFontMono-SemiBold.ttf、FiraCodeNerdFontPropo-SemiBold.ttf。因此寻找字体文件时请以父目录为准。二、快速选择NF / NFM / NFP 三种变体文档 TL;DR 完整版关联文档给出的选择逻辑非常明确先看 TL;DR受限等宽环境如终端选择名称带Nerd Font Mono缩写NFM的字体想要更大图标通常约为 1.5 个正常字母宽度选择不带Mono的Nerd Font缩写NF大多数终端支持但效果因人而异ymmv比例proportional场景GUI 元素、演示文稿编辑等选择带Nerd Font Propo缩写NFP的字体。落到 SemiBold 字重三种变体对应的实际文件为变体文件图标宽度特征典型场景Nerd FontNFpatched-fonts/FiraCode/FiraCodeNerdFont-SemiBold.ttf双倍宽double-width图标更大大多数现代终端、编辑器Nerd Font MonoNFMpatched-fonts/FiraCode/FiraCodeNerdFontMono-SemiBold.ttf单倍宽single-width对齐严格需要严格等宽的终端、表格类场景Nerd Font PropoNFPpatched-fonts/FiraCode/FiraCodeNerdFontPropo-SemiBold.ttf比例宽度无悬垂overhangGUI 组件、幻灯片、文档排版这三种变体的宽度语义与 font-patcher 的三个参数一一对应可相互印证--mono源码 font-patcher#L517Create monospaced font, existing and added glyphs are single-width生成 NFM--single-width-glyphs控制图标按单宽生成--variable-width-glyphs源码 font-patcher#L523-L524Do not adjust advance width (no overhang)生成 NFP。选择建议如果终端或 IDE 支持比例/双宽字形绝大多数现代终端如 Windows Terminal、Kitty、Alacritty 均支持优先选 NF 以获得更醒目的图标若你在必须保持每列等宽的环境如某些远程终端、串口工具、文本模式表格工作则选 NFM。三、连字Ligatures默认保留按需移除Fira Code 的灵魂是编程连字因此打补丁后连字是否存活是用户最关心的问题之一。关联文档明确说明连字在补丁字体中被普遍保留Ligatures are generally preserved历史上 Nerd Fontsv2.0.0的Nerd Font Mono字体不包含连字但从v2.1.0起该限制已被取消NFM 字体同样保留连字如果使用的是支持连字渲染的终端又不想看到连字效果通常可以在终端设置里直接关闭连字功能如font-feature-settings或编辑器内的 ligatures 开关。从源码层面看仓库也提供了主动移除连字的手段印证了连字默认保留、可按需移除的设计font-patcher 提供--removeligs/--removeligatures参数font-patcher#L2276其实现remove_ligatures()font-patcher#L832-L858会从配置文件的Subtables段读取 JSON 格式的连字子表列表通过removeLookupSubtable逐表删除并支持按字体名称正则匹配的复杂条目。该参数需要配合--configfile使用适用于想在自己打补丁的字体中去掉特定连字表的进阶场景。四、获取方式一直接下载已打补丁的字体Option 1文档给出了最省事的两条路径稳定版从 Nerd Fonts 官方 Release 页面下载对应字体包Fira Code 的发布产物为FiraCode.zip与FiraCode.tar.xz后者体积更小适合带宽敏感的用户。开发版最新直接使用本仓库 patched-fonts/FiraCode 目录下的补丁字体文件无需等待版本发布。下载到本地后可以使用仓库自带的安装脚本完成系统级安装Linux/macOSBashinstall.sh 支持按名称筛选安装核心用法源码 install.sh#L25-L58./install.sh FiraCode常用参数-c/--copy复制安装默认、-l/--link符号链接、-L/--list仅列出待安装文件dry run、-C/--clean清空重建目标目录、--remove卸载、-s/--mono仅装单宽 NFM 变体、-p/--use-proportional-glyphs装比例 NFP 变体、-U/--install-to-user-path装到用户字体目录默认、-S/--install-to-system-path装到系统全局目录需 root。WindowsPowerShellinstall.ps1 提供Install-NerdFont函数install.ps1#L283支持名称补全Install-NerdFont -Name FiraCode注意install.sh 的版本输出中声明该脚本为已弃用工具Deprecated tool: Will not work to get newer fonts as they are not inside the repo anymore即它只能安装仓库内已存在的补丁字体无法获取仓库之外的新版本。需要最新版本时请走 Release 页面或仓库内目录。五、获取方式二用 font-patcher 自己打补丁Option 2如果默认的补丁产物无法满足需求例如只想打入部分图标集以减小字体体积、想改变字形宽度、或想对 SemiBold 之外的组合做定制文档给出的第二条路线是使用 font-patcher 自行打补丁。这正是本仓库的核心能力所在。5.1 源字体与构建配置Fira Code 的未补丁源字体位于 src/unpatched-fonts/FiraCodeSemiBold 字重的源文件为 src/unpatched-fonts/FiraCode/FiraCode-SemiBold.ttf。仓库为 Fira Code 准备了专属的打补丁配置 src/unpatched-fonts/FiraCode/config.cfg内容为[Config] commandline: --makegroups 2--makegroups用于选择补丁字体的替代命名方式默认值 1可选范围 -1 到 6见 font-patcher#L2227。从源码实现看font-patcher#L627-L658makegroups 0时启用基于 FontnameParser 的家族名解析其中makegroups2属于启用短家族名short families的模式enable_short_families的第二个参数对取值 2、3、5、6 为真可以推断仓库正是用这一模式将Fira Code SemiBold整理为FiraCode SemiBold这样的紧凑家族名再追加Nerd Font后缀形成最终产品名。5.2 环境依赖与三种调用方式打补丁需要以下环境FontForge、Python 3、python-fontforge与argparse。推荐用法readme 中的标准做法fontforge -script font-patcher PATH_TO_FONT若环境中 FontForge 命令可直接调用也可直接运行脚本./font-patcher PATH_TO_FONT若使用 FontForge AppImage需要先chmod ux赋予执行权限且所有路径必须是绝对路径、必须显式指定输出目录可用$PWD缩写当前目录./FontForge.AppImage -script $PWD/font-patcher $PWD/BaseFont.ttf -out /tmp对 SemiBold 字重而言完整命令示例为fontforge -script font-patcher src/unpatched-fonts/FiraCode/FiraCode-SemiBold.ttf -out ./out5.3 与本主题相关的核心参数结合本文主题以下参数最值得关注完整参数清单见仓库 readme.md 的 Font Patcher 一节参数作用与本文的关系--mono/-s生成单宽等宽字体隐含--single-width-glyphs对应 NFM 变体--variable-width-glyphs不调整字宽无悬垂对应 NFP 变体--single-width-glyphs图标按单宽而非默认双宽生成控制图标宽度--removeligs按配置文件移除指定连字表需--configfile与第三节连字话题对应--makegroups [{-1,0,1,2,3,4,5,6}]选择补丁字体命名方式默认 1Fira Code 配置为 2--careful检测到已有字形时不覆盖防止图标与源字形冲突--configfile指定配置文件仓库构建读取 config.cfg--custom指定自定义符号字体复制其全部字形扩充图标来源另一个与命名相关的规则是补丁后字体家族名会被设为原家族名的 CamelCase 化去除空格并追加Nerd Font后缀。例如源字体Fira Code SemiBold最终会成为FiraCodeSemiBold Nerd Font系列。六、SIL 保留字体名RFNFira Code 不受此限制关联文档末尾引用了 SIL Open Font License 的保留字体名Reserved Font Name机制src/readme-rfn-addendum.md 对其有完整说明No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.简言之若一款 OFL 字体声明了保留字体名则修改版例如打补丁后的字体不得继续使用该主字体名除非获得版权持有者书面许可。该机制的目的在于避免同名碰撞、保护原作者、减少误用支持责任、鼓励派生作品。这一点对 Fira Code 用户是个好消息fonts.json 明确登记 Fira Code 的licenseId为OFL-1.1-no-RFN且RFN: false即Fira Code 不包含保留字体名。因此补丁后将其命名为FiraCode Nerd Font、FiraCodeNerdFontMono等变体完全合规不会触发 RFN 限制。七、总结一张图完成决策面对 Fira Code Nerd FontSemiBold可以按下述顺序决策确定字重日常编码用Regular或SemiBold标题/强调场景可选Bold确定宽度变体现代终端/编辑器选NF图标更大严格等宽环境选NFMGUI/演示场景选NFP确定获取方式追求省事选官方 Release 的FiraCode.zip/FiraCode.tar.xz或仓库内 patched-fonts/FiraCode 目录需要定制精简图标集、调整宽度、移除特定连字时用 font-patcher 对 src/unpatched-fonts/FiraCode/FiraCode-SemiBold.ttf 自行打补丁并按需传入--mono、--variable-width-glyphs、--removeligs等参数连字无需担心三种变体默认都保留 Fira Code 的编程连字不想要时在终端设置里关闭即可进阶用户也可用--removeligs从源头移除。至此无论是开箱即用还是全定制打补丁Fira Code Nerd Font SemiBold 的选型与落地路径都已完整覆盖。赞分享开发工具CLI【免费下载链接】nerd-fontsIconic font aggregator, collection, patcher. 3,600 icons, 50 patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, more项目地址https://gitcode.com/GitHub_Trending/ne/nerd-fonts点击查看免费下载相关推荐RTranslator 离线翻译完整教程3 种模式怎么挑没网也能实时对谈RTranslator 离线翻译完整教程3 种模式怎么挑没网也能实时对谈 RTranslator 是一款免费开源的 Android 离线翻译应用。识别、翻译开发工具CLI超强IDE字体Maple Mono智能连字与Nerd-Font支持超强IDE字体Maple Mono智能连字与Nerd Font支持 还在为代码编辑器中的字体显示效果而烦恼吗Maple Mono作为一款专为开发者设计的开源开发工具实战指南构建高效的企业级化学分子可视化解决方案实战指南构建高效的企业级化学分子可视化解决方案 在化学信息学、药物研发和材料科学领域SMILES Drawer 2.4.1 提供了一个纯前端、高性能的 Ja上一篇CyberStrikeAI 快速上手10 分钟一键部署 AI 安全测试平台附避坑清单下一篇告别无法调整的窗口3分钟用WindowResizer强制调整软件窗口大小创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

FreeRTOS任务设计本质:确定性调度而非多线程

FreeRTOS任务设计本质:确定性调度而非多线程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 4:46:41 阅读更多 →
公交系统课程设计:从图建模到最短路径算法的完整实现

公交系统课程设计:从图建模到最短路径算法的完整实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 2:26:47 阅读更多 →
Android 应用安装目录与包名路径查询实战

Android 应用安装目录与包名路径查询实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/30 2:26:47 阅读更多 →

最新新闻

科研第二曲线:实验卡壳时如何继续推进课题进度

科研第二曲线:实验卡壳时如何继续推进课题进度

“课题进度总卡在实验上?你可能忽略了科研的‘第二曲线’”说实话,我见过太多人把“科研进度”和“实验进度”直接画等号了。实验一不顺利,整个人就进入“等待模式”:做不出来就干等着,等仪器、等样品、等表征、等结果…

2026/10/1 4:46:09 阅读更多 →
安全约束机组组合(SCUC)模型:交直流潮流方程与Pyomo求解实践

安全约束机组组合(SCUC)模型:交直流潮流方程与Pyomo求解实践

简介:面向电力系统调度与优化研究人员的MATLAB实现代码包,聚焦安全约束机组组合问题,基于交流与直流潮流方程建模。交流潮流方程可精确计算节点电压、电流与功率损耗,直流潮流方程则简化求解复杂度,适合大规模电网分析…

2026/10/1 4:46:09 阅读更多 →
SpringBoot+Vue医院资源管理系统毕设源码搭建全指南

SpringBoot+Vue医院资源管理系统毕设源码搭建全指南

我去年帮一个学弟从头到尾过了一遍他买的这套"SpringBootVue医院资源管理系统"毕设源码,当时他花了两周都没跑起来,最后我陪他把数据库脚本、后端接口、前端路由全捋了一遍,又对着接口文档做了两轮自测,才把项目完整交上…

2026/10/1 4:46:09 阅读更多 →
跨卡通信决定算力天花板:千卡集群如何像一颗超级芯片

跨卡通信决定算力天花板:千卡集群如何像一颗超级芯片

训练一个千亿参数模型,调度器告诉你分到了800张卡。满怀期待起任务,跑起来一看GPU利用率只有70%,剩下30%的时间都在等别人传数据。这种场景我见过太多次。所以业内一直有句话我很认同:跨卡通信才是算力天花板。单芯片的峰值算力再…

2026/10/1 4:46:09 阅读更多 →
一个人用AI搭建电商内容全自动化流水线的实战拆解

一个人用AI搭建电商内容全自动化流水线的实战拆解

一个人把电商内容全包了这件事,放在三年前我想都不敢想。文案、设计、排版、发布,每一个环节单独拎出来都是一门手艺,一个人很难全点满。但这两年不一样了,AI把“技能门槛”硬生生拉到了“会用提示词”的水平。我现在一个人维护着…

2026/10/1 4:46:09 阅读更多 →
业务Agent评测实战:从轨迹评测到CI集成的全流程指南

业务Agent评测实战:从轨迹评测到CI集成的全流程指南

1. 业务Agent评测到底在评什么1.1 从“模型评测”到“Agent评测”的认知转变很多人第一次接触Agent评测,脑子里浮现的还是那套跑分逻辑:拿一个测试集,跑一遍,算准确率、召回率、F1,然后出一张榜单。这套方法在纯LLM评测…

2026/10/1 4:45:09 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →