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