nerdfix: 拯救你的 Nerd Font 图标兼容性
nerdfix: 拯救你的 Nerd Font 图标兼容性
nerdfix 是一款专门用于检测和修复项目中过时 Nerd Font 图标的命令行工具。随着 Nerd Fonts 的版本迭代,部分图标的 codepoint 会发生变更(比如 mdi-* 系列图标在 v2.3.3 后已被标记为废弃),手动检查每个项目中的图标既繁琐又容易遗漏。nerdfix 通过索引官方 cheat sheet,自动扫描代码库并给出替换建议。
核心功能
| 特性 | 说明 |
|---|---|
| 过时图标检测 | 扫描文件找出已废弃的 Nerd Font 图标 |
| 智能替换建议 | 按相似度排序推荐新图标 |
| 交互式修复 | 支持模糊搜索和交互式选择 |
| 批量替换 | 支持前缀替换和自动写入 |
| JSON 输出 | 结构化输出便于 CI/CD 集成 |
安装
# 从源码安装
cargo install --git https://github.com/loichyan/nerdfix.git
# 或使用 Nix
nix run github:loichyan/nerdfix
# 预编译二进制文件见 Release 页面
使用示例
检测过时图标
nerdfix check src/
输出示例:
warning: Found obsolete icon U+F752
┌─ src/config.lua:15:8
│
15 │ icon = ""
│ ^ Icon 'mdi-folder_multiple' is marked as obsolete
│
= You could replace it with:
1. U+F0253 md-folder_multiple
2. U+F13D3 md-folder_star_multiple
交互式修复
nerdfix fix --write src/
工具会逐个提示过时图标,你可以选择建议的替换项或手动输入新图标名称。
批量前缀替换
# 将所有 mdi- 前缀图标替换为 md- 前缀
nerdfix fix --sub prefix:mdi-/md-/ src/
为什么需要它?
Nerd Fonts v3 移除了大量旧版图标。如果你的配置文件或终端工具使用了过时的 codepoint,升级字体后会出现图标缺失或显示为方块的问题。nerdfix 让你在升级前就能发现并修复这些问题,避免上线后才发现图标显示异常。
项目信息
- 仓库: https://github.com/loichyan/nerdfix
- Stars: 464+
- 语言: Rust
- 许可证: Apache-2.0 / MIT