news 2026/6/29 17:39:53

Nerd Fonts:给编程字体加上一万多个图标

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nerd Fonts:给编程字体加上一万多个图标

文章目录

  • Nerd Fonts:给编程字体加上一万多个图标
    • 为什么需要这个东西
    • 已经 patch 好的字体有多少
    • 想用自己收藏的字体怎么办
    • 安装方式
    • 图标怎么查
    • 适合谁

Nerd Fonts:给编程字体加上一万多个图标

nerd-fonts 在 GitHub 上已经拿到 63.4K Star 了。

这个项目干的事情很明确:把流行的编程字体拿过来,往里塞一大堆图标符号。Font Awesome、Devicons、Octicons、Material Design Icons……这些开发者常用的图标集,它全部合并进去了,总共超过 10,000 个 glyph。

为什么需要这个东西

写代码的人对终端和编辑器的字体要求很高。等宽、清晰、连字支持,这些是基本需求。但还有一个问题长期被忽略:图标。

你在终端里用 Powerline 状态栏、在 Neovim 里用文件树插件、在 shell 脚本里显示文件类型图标,这些场景都需要字体里内置对应的符号。普通编程字体不带这些,显示出来全是方块或者问号。

Nerd Fonts 解决的就是这个问题。它把原始字体保持不变,只往里追加图标符号。你装完之后,字体本身的排版、字重、连字特性全都还在,只是多了几千个可用的图标。

已经 patch 好的字体有多少

目前官方提供了 67 个字体家族的 patch 版本。你日常用的那些编程字体基本都在里面:

Fira Code、JetBrains Mono、Cascadia Code、IBM Plex Mono、Source Code Pro、Hack、Inconsolata、DejaVu Sans Mono……不需要自己动手,直接下载就能用。

每个字体还区分了三种版本:等宽(Monospaced)、双倍宽度(Double-width)、比例宽度(Proportional)。等宽版本适合终端和编辑器,双倍宽度版本在某些 UI 场景下更合适。

想用自己收藏的字体怎么办

官方已经覆盖了 67 个字体家族,但总有你用的字体不在列表里。Nerd Fonts 提供了一个 Font Patcher 工具,用 Python 写的,基于 FontForge,可以把任意 TrueType 或 OpenType 字体 patch 成 Nerd Font 版本。

操作不复杂,跑一条命令就行:

font-patcher MyFont.ttf

生成的字体文件会保留原始字体的所有特性,只追加 Nerd Font 的图标集。你还可以指定只追加某些图标集,控制最终文件大小。

安装方式

各个平台都有对应的安装方法,不需要手动下载字体文件再一个个拖进系统。

macOS 用 Homebrew:

brew tap homebrew/cask-fonts brewinstallfont-fira-code-nerd-font

Windows 用 Chocolatey 或者 Scoop:

chocoinstallnerd-firacode scoop bucketaddnerd-fonts scoopinstallFiraCode-NF

Arch Linux 直接从官方源装:

pacman-Sttf-firacode-nerd

也可以用 PowerShell 交互式安装,或者用 curl 下载指定字体。项目 Wiki 里有完整的安装文档。

图标怎么查

项目提供了一个在线的 Cheat Sheet 页面,可以按名称搜索图标,也能看到每个图标对应的 Unicode 编码。在终端和脚本里直接用 Unicode 编码就能输出对应图标。

如果你在用 oh-my-zsh 或者 starship 这类 shell 美化工具,它们的图标配置默认就是基于 Nerd Fonts 的编码。只要字体装好,配置文件不用改,开箱即用。

适合谁

用终端工作的人,基本都能从这个项目受益。写 shell 脚本要在输出里加图标区分文件类型,用 tmux 状态栏显示 git 分支状态,在 Neovim 里跑 telescope 文件预览,这些场景都依赖 Nerd Fonts 提供的符号。

如果你在用现代终端模拟器(iTerm2、Windows Terminal、Alacritty、Kitty),加上一套 Nerd Font,视觉体验会有明显变化。不是花哨的那种变化,是信息密度变高了,一眼能扫到更多有用的东西。

、Alacritty、Kitty),加上一套 Nerd Font,视觉体验会有明显变化。不是花哨的那种变化,是信息密度变高了,一眼能扫到更多有用的东西。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/29 17:39:42

【单片机毕业设计】基于 STM32 的带管理员权限电子密码锁设计,基于单片机的智能密码门禁控制系统开发(012501)

文章目录20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能一、基础权限功能二、密码开锁核心功能三、人机交互与执行功能技术路线项目演示关于我们项目案例源码获取博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业&#x1f6a2…

作者头像 李华
网站建设 2026/6/29 17:35:35

【单片机毕业设计】基于 STM32 的火焰监测与自动灭火控制系统设计,基于单片机的火灾检测与水泵联动报警装置设计(012601)

文章目录 20 个相关毕业设计备选题目项目研究背景摘要总体方案核心功能技术路线项目演示关于我们项目案例源码获取 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘…

作者头像 李华
网站建设 2026/6/29 17:33:04

SASE实战:3小时阻断勒索攻击,重塑企业安全访问架构

1. 项目概述:一次真实的SASE实战复盘最近处理了一个让我印象深刻的案例,一家大型跨境贸易公司的OA系统在凌晨遭遇了勒索软件攻击,整个业务差点停摆。我们团队介入后,通过部署SASE(安全访问服务边缘)架构&am…

作者头像 李华
网站建设 2026/6/29 17:26:35

JavaScript的Symbol.toPrimitive方法:对象到原始值的转换

JavaScript的Symbol.toPrimitive方法:对象到原始值的转换 在JavaScript中,对象与原始值之间的转换是一个常见但容易被忽视的细节。当对象需要参与算术运算、字符串拼接或逻辑比较时,JavaScript会尝试将其转换为原始值。而Symbol.toPrimitive…

作者头像 李华
网站建设 2026/6/29 17:21:34

高级自定义技巧:MeEdu在线教育系统核心功能深度解析

高级自定义技巧:MeEdu在线教育系统核心功能深度解析 【免费下载链接】meedu MeEdu 是一款面向个人、中小机构的在线网校、知识付费、线上培训解决方案。 项目地址: https://gitcode.com/gh_mirrors/me/meedu MeEdu是一款面向个人、中小机构的在线网校、知识付…

作者头像 李华
网站建设 2026/6/29 17:20:12

多位数逐位提取

数位计算公式说明个位(最右边第 1 位)num % 10直接取最后一位余数十位(右数第 2 位)(num / 10) % 10先砍掉个位,再取最后一位百位(右数第 3 位)(num / 100) % 10先砍掉个位 十位,再…

作者头像 李华