Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
35 KiB
Nerd Fonts 是一個使用大量字體圖示來解決程式設計師在開發過程中缺少合適字體的問題的專案。它可以從流行的字體圖示庫中將大量外部字體引入待開發的專案中,它支持的字體圖示庫包括 Font Awesome ➶, Devicons ➶, Octicons ➶, and others.
下面的桑基圖(Sankey Diagram)展示了Nerd Fonts中現有的字形組合:
創建圖表的工具為: @SankeyMATIC
快速導航
Latest Release ➶ | Fonts | Patcher | VimDevIcons ➶ | Font Package Downloads ➶ |
---|---|---|---|---|
重要提示
master
分支的文件路徑 不穩定! 驗證你的 repository URI references- 除非你想成為開發貢獻者,不然最好不要複製這個 repository。
目錄
- 1 - 手動
- 2 - 下載發佈存檔
- 3 - 安裝腳本
- 4 - Homebrew Fonts (macOS (OS X))
- 5 - 複製 Repo
- 6 - Ad Hoc Curl 下載
- 7 - Arch User Repository (AUR) (Arch Linux)
- 8 - 你自己的字體補丁
附加訊息
TL;DR
Nerd Fonts 中包含流行的程式字體和字形。 如果你想要的字體沒有在現有的字體庫中,你可以使用 font patcher來自訂字體。 更多信息請見 wiki。如果你正在尋找Vim外掛,請見 VimDevIcons ➶。
多種字體下載選項
如果你...
選項 1.
需要快速從patched-fonts/
directory下載一個 獨立字體選項 2.
需要去下載包含粗體、斜體等等一系列字體的 字體家族,請見 下載檔案選項 3.
需要自動安裝或使用腳本,請見 安裝腳本選項 4.
是macOS的使用者,並且想要使用Homebrew,請見 Homebrew Fonts選項 5.
想要 完全控制,請見 複製這個 repo選項 6.
想要使用curl
command 或者使用 scripts,請見 Ad Hoc Curl 下載選項 7.
是Arch Linux的使用者,並且想要使用AUR packages,請見 Unofficial Arch User Repositories選項 8.
想要打包你自訂的字體,請見 字體補丁
特征
- FontForge Python script 可以打包任何字體
- 包括建立Monospaced (fixed-pitch, fixed-width) 或者 double-width (non-monospaced) 字形
- 更多詳情請見 Font Patcher 段落
50
已經 打包了字體家族- Over
1,571,470
獨立的 組合/變型 字體 (更多詳情) - Over
1,300
字形/圖示 組合 (更多詳情)- 當前的字形集包括: Powerline with Extra Symbols, Font Awesome, Devicons, Octicons, Font Logos, Pomicons
- 每種字體的Monospaced (fixed-pitch, fixed-width) 和 double-width (non-monospaced) 版本
- 這指的是Nerd Font字形本身,並不一定需要將字體作為一個整體考慮
- 一個 開發者/貢獻者提供了 bash script 來為所有字體再打包
字形集
🔍 🔍 你現在可以透過NerdFonts.com中的Cheat Sheet對字形進行搜索
Seti-UI + 自訂
基於 Seti-UI Icomoon 的額外自訂字形。
Devicons
一個為開發者,code jedis,ninjas,HTTPsters,evangelists 和 nerds(sic)制作的圖示字體。 / (repo) / (website)
Font Awesome
Font Awesome Extension
Octicons
Nerd Font Complete Codepoints:*
* To avoid conflicts between icon sets, these were modified in the 'Complete' fonts. To view the original codepoints see the Wiki.
Powerline Extra Symbols
提供額外的 Powerline separator 字體 和 a column number glyph (CN). / (repo)
IEC Power Symbols
向Unicode中加入新符號 / (website)
Font Logos
Font-logos 是一個包含LOGO和linux流行布局的圖示字體。 / (repo)
Pomicons
8 個符號 "Pomodoro Technique"®. / (repo)
Shell中的Icon 名稱
從bin/scripts/lib/路徑中下載 .sh
文件, 推薦的文件位置為 ~/.local/share/fonts/
或者 ~/bin/
.
i_all.sh
- 幫助你載入你下載的所有文件i_dev.sh
- Devicons (198 icons, 8 does not have an established name)i_fa.sh
- Font Awesome (675 icons, 111 aliases)i_fae.sh
- Font Awesome Extension (170 icons)i_iec.sh
- IEC Power Symbols (5 icons)i_logos.sh
- Font Logos (20 icons)i_oct.sh
- Octicons (172 icons)i_ple.sh
- Powerline Extra Symbols (37 icons, 2 aliases, 16 does not have an established name)i_pom.sh
- Pomicons (11 icons)i_seti.sh
- Seti-UI + Custom (50 icons, 2 aliases, 5 does not have an established name)
然後 source
所需的文件並且輸出 $i_*
variables 去尋找字體:
source ~/.local/share/fonts/i_oct.sh
echo $i_oct_heart
# Output:
# ♥
NOTE: You have to use one of the Nerd Fonts to see correct icons for some icon sets (Devicons, Font Awesome Extension, Font Logos), but other sets should work with their standard fonts too.
字體補丁
*RFN = Reserved Font Name
字體集
- 超過
1,485,000個
獨立的 變化/組合(Power Set)字體包:50個
字體合集719個
字體家族2,876個
‘完全’的 變化/組合字體1,485,410個
有可能的 變化/組合字體1,488,286個
總字體數 (2,876 + 1,485,410)
- 每種字體的組合都是任意 Variations的組合
Variations
- no flags given (defaults to only Seti-UI + Custom and Devicons)
- double (variable/proportional) or single (fixed/monospaced) width glyphs
- Font Awesome
- Font Awesome Extension
- GitHub Octicons
- Font Logos
- Powerline Extra Symbols
- IEC Power Symbols
- Pomicons
- Windows Compatibility(Windows 相容性)
字體安裝
選項1: 手動下載並安裝
安裝特定 單獨字體 的最快方法。
下載你選中的特定字體 patched font
選項2: 下載發佈存檔
適用於當你需要archive或者完整的字體家族(Bold, Italic, etc.)的情況。
你可以以壓縮檔的形式從latest release下載所需的字體
選項3: 安裝腳本
適用於當你想要 自動 安裝或者使用 scripts 的情況。
註: 僅適用於 Linux & macOS (OS X) 註: Requires cloning the repo as of now
所有字體:
- 安裝全部的字體包 (警告:字體的數量眾多,需要下載的文件體積巨大)
./install.sh
單獨字體:
- 安裝你所需的單獨字體
./install.sh <FontName>
./install.sh Hack
./install.sh HeavyData
選項4: Homebrew 字體
適用於 macOS系統的Homebrew使用者。
所有字體都可以透過 Homebrew 字體 從 macOS (OS X)平台上找到
brew tap caskroom/fonts
brew install --cask font-hack-nerd-font
選項5: 複製 Repo
適用於要使用 完全控制, 所有 或者 多數 字體的情況,或者為Nerd Fonts的開發 盡一份力的情況。
基於效率考慮,如果你只想使用有限的幾種字體,我們不推薦複製這個 repository。
但是如果你想要複製這個repo,請確認你_shallow_複製了它:
git clone --depth 1
選項6: Ad Hoc Curl 下載
適用於當你想要使用
curl
command 或者在 scripts中使用它的情況。
Linux
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts && curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf
註: deprecated alternative paths: ~/.fonts
macOS (OS X)
cd ~/Library/Fonts && curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf
選項7: 非官方 Arch User Repository (AUR)
適用於 Arch Linux 下使用 AUR packages的情況
下列字體可以在Arch Linux透過 AUR packages 下載:
The list is not complete, but you can search for a complete list here.
選項8: 打包你的個人字體
適用於 patching 你的 個人字體 或者完全 自訂 字體補丁。
在你的個人字體中使用 Python 命令行腳本去增加新的字形並生成字體包
請見: Font Patcher 的使用方法
- 這個選項適用於當你 不想 使用 fonts provided的情況
- 你需要複製已經生成好的字體到你系統中正確的字體資料夾中
可以透過VimDevIcons ➶打包你選中的字體:
- 需要: Python 2 (or Python 3), python-fontforge package (version 20141231 或者更新版本,請見 安裝說明)
- OSX上的替代安裝方法為:
brew install fontforge
- 使用:
./font-patcher PATH_TO_FONT
- 替代方案: 使用script flag透過FontForge binary來執行打包:
./fontforge -script font-patcher PATH_TO_FONT
usage: font-patcher [-h] [-v] [-s] [-l] [-q] [-w] [-c] [--careful]
[--removeligs] [--postprocess [POSTPROCESS]]
[--configfile [CONFIGFILE]] [--custom [CUSTOM]]
[-ext [EXTENSION]] [-out [OUTPUTDIR]]
[--glyphdir [GLYPHDIR]] [--makegroups]
[--variable-width-glyphs]
[--progressbars | --no-progressbars] [--also-windows]
[--fontawesome] [--fontawesomeextension] [--fontlogos]
[--octicons] [--codicons] [--powersymbols] [--pomicons]
[--powerline] [--powerlineextra] [--material] [--weather]
font
Nerd Fonts Font Patcher: patches a given font with programming and development related glyphs
* Website: https://www.nerdfonts.com
* Version: 2.2.2
* Development Website: https://github.com/ryanoasis/nerd-fonts
* Changelog: https://github.com/ryanoasis/nerd-fonts/blob/master/changelog.md
positional arguments:
font The path to the font to patch (e.g., Inconsolata.otf)
optional arguments:
-h, --help 顯示幫助訊息和退出
-v, --version 顯示程式版本和退出
-s, --mono, --use-single-width-glyphs
設置生成的字體是single-width還是double-width (預設是 double-width)
-l, --adjust-line-height
設置是否調整 line heights (一般應該嘗試 center powerline separators)
-q, --quiet, --shutup
不生成 verbose output
-w, --windows 將內部字體名稱限制在31個符號內 (為了 Windows 相容性)
-c, --complete 加入所有可用的字體
--careful 如果發現了已經存在的字形,不要對它進行覆寫
--removeligs, --removeligatures
Removes ligatures specificed in JSON configuration file
--postprocess [POSTPROCESS]
指定一個針對後續處理程式的腳本
--configfile [CONFIGFILE]
Specify a file path for JSON configuration file (see sample: src/config.sample.json)
--custom [CUSTOM] 指定一個自訂圖示字體,所有新字形都會在不縮放的情況下被複製。
-ext [EXTENSION], --extension [EXTENSION]
更改字體文件的文件格式去創建新文件 (e.g., ttf, otf)
-out [OUTPUTDIR], --outputdir [OUTPUTDIR]
將修補後的字體文件輸出到特定目錄
--glyphdir [GLYPHDIR]
Path to glyphs to be used for patching
--makegroups Use alternative method to name patched fonts (experimental)
--variable-width-glyphs
Do not adjust advance width (no "overhang")
--progressbars 顯示每個Glyph Set的完成度進度條
--no-progressbars 不顯示每個Glyph Set的完成度進度條
--also-windows Create two fonts, the normal and the --windows version
Symbol Fonts:
--fontawesome 加入 Font Awesome Glyphs字體 (http://fontawesome.io/)
--fontawesomeextension
加入 Font Awesome 補充字體 (https://andrelzgava.github.io/font-awesome-extension/)
--fontlogos, --fontlinux
加入 Font Logos 字體 (https://github.com/Lukas-W/font-logos)
--octicons 加入 Octicons 字體 (https://octicons.github.com)
--codicons Add Codicons Glyphs (https://github.com/microsoft/vscode-codicons)
--powersymbols 加入 IEC Power Symbols (https://unicodepowersymbol.com/)
--pomicons 加入 Pomicon 字體 (https://github.com/gabrielelana/pomicons)
--powerline 加入 Powerline 字體
--powerlineextra 加入 Powerline 字體 (https://github.com/ryanoasis/powerline-extra-symbols)
例子
./font-patcher Droid\ Sans\ Mono\ for\ Powerline.otf
./font-patcher Droid\ Sans\ Mono\ for\ Powerline.otf -s -q
./font-patcher Droid\ Sans\ Mono\ for\ Powerline.otf --use-single-width-glyphs --quiet
./font-patcher Droid\ Sans\ Mono\ for\ Powerline.otf -w
./font-patcher Droid\ Sans\ Mono\ for\ Powerline.otf --windows --quiet
./font-patcher Droid\ Sans\ Mono\ for\ Powerline.otf --windows --pomicons --quiet
./font-patcher Inconsolata.otf --fontawesome
./font-patcher Inconsolata.otf --fontawesome --octicons --pomicons
./font-patcher Inconsolata.otf
Gotta Patch 'em All Font Patcher!
-
針對貢獻者和開發者使用
-
在未打包的路徑中re-patches 所有 字體:
./gotta-patch-em-all-font-patcher\!.sh
- 可以選擇限制到特定字體名稱模式:
./gotta-patch-em-all-font-patcher\!.sh Hermit
貢獻
See contributing.md
不穩定的文件路徑
⚠️ 警告: 基於後續的新版本發佈,文件路徑有可能被改變 (特別是 major version bumps)
注意 release 分支 不是 master分支因為路徑會因為新版本發佈而改變
- 舉例:
- ✅ Use:
https://github.com/ryanoasis/nerd-fonts/blob/0.9.0/patched-fonts/Hermit/Medium/complete/Hurmit%20Medium%20Nerd%20Font%20Complete.otf
- ❌ Instead of:
https://github.com/ryanoasis/nerd-fonts/blob/
master/patched-fonts/Hermit/Medium/complete/Hurmit%20Medium%20Nerd%20Font%20Complete.otf
- ✅ Use:
其他的好字體
- 一個包含更多好字體的列表,可惜的是,因為授權問題我們不能提供或分享它們:
- Input Mono (license restriction)
- Possibly coming with external hosting :)
- PragmataPro (not free)
- Consolas (proprietary)
專案目的
更新日誌
See changelog.md
授權
MIT © Ryan L McIntyre