為什么要選擇合適的字體編程
選擇編程字體最重要的是有字母區分度,無區分度容易產生字母的混淆,如
- 數字1與小寫字母L(l)
- 小寫字母L(l)與大寫字母I(i)
- 數字0與字母O(o)
再其次,字體美感也是很重要的(有時可以忽略【區分度】)。
(微軟雅黑)
同一款字體看久了就比較膩了,所以這兩天整理了以下幾款比較優秀的編程字體,既沒有字母混淆的問題(基本沒有),代碼美感也提升了不少。
以下推薦無順序
字體推薦
1. Monaco
Monaco號稱蘋果出品最好的編程字體,符號字母都有不錯的區分,在Linux和Windows下都可以安裝使用。
之前在網上找到的Monaco版本會出現字體偏細,有鋸齒的情況,這里推薦github上開源的MonacoB,粗體Monaco,實測2K下無鋸齒,Windows下完美仿真OSX。
網絡資源(鋸齒分明,字體偏細)

粗體版(較圓潤)

2. Source Code Pro
Adobe開發的一款開源、無襯線字體,和 Source Han Sans 設計風格相近,看慣了Consolas這類等寬字體會有眼前一亮的感覺。同樣,被Adobe 公司號稱最佳的編程字體。
scp整體較扁平,很適合看代碼。這款字體在github開源,可以一試。
效果圖

3. Hack
看一下開發者介紹:
Hack is designed to be a workhorse typeface for source code. It has deep roots in the free, open source typeface community and expands upon the contributions of the Bitstream Vera & DejaVu projects. The large x-height + wide aperture + low contrast design make it legible at commonly used source code text sizes with a sweet spot that runs in the 8 - 14 range. The full set of changes to the upstream source are available in the changelog.
Hack字體設計讓標准大小的代碼能清晰易讀,它的特征包括大字高、寬孔徑和低對比。Simpkins稱,在現代桌面和筆記本顯示器上Hack的最佳大小是 8px-12px,在高清顯示器上使用 6或7px大小的字體可以舒適的工作。Hack調整了一些容易引起混淆的字符形狀,如字母o和數字0,字母l和數字1。
翻譯引用:https://linux.cn/article-6125-weibo.html
Hack更像是嚴肅版的Monaco,行間距比Consolas略高,字體圓滑,顏值還是很高的。該字體在github開源,感興趣的可以去試一試。
放圖

4. Courier New
Courier New 是 Windows 的缺省等寬字體。歷史上最早的時候,windows只有fixedsys與CN這兩種等寬字體。CN是矢量字體,是唯一一款能保證所有版本Windows都預裝的等寬矢量字體。因此Code::blocks,keil,還有notepad++的默認字體都是CN。
既然windows預裝,在自己的電腦上可以直接使用。 非WIndows用戶網上資源有很多。

4. Consolas
這套字型使用了微軟的ClearType 字型平滑技術,並隨同Windows Vista、Office 2007及Microsoft Visual Studio中發行,或可在微軟的網站下載。在Windows Vista的6套新字型中,Consolas近似於前版Windows中 的2款內建字型:Lucida Console與Courier New,主要為程序代碼的顯示字型而設計的,特別之處是它的“0”字加入了一斜撇,以方便與字母“O”分辨。
在Consolas之前,程序代碼的顯示字型大多為Courier New或其他等寬字型,字型的柔邊(反鋸齒)效果則依個人喜好選擇開啟或關閉,然而Consolas是專為柔邊效果而設計的字型,特別是為了搭配微軟的ClearType技術,如果不開啟ClearType,Consolas的顯示效果會打大折扣。另外,ClearType技術還需要搭配液晶顯示器才會有最佳表現。
引用:https://baike.baidu.com/item/Consolas
百度百科介紹的比較詳細。Consolas是CN的升級,與CN相比,Consolas更窄,能夠在較少的空間顯示更多的內容。同時Consolas也是VS系列默認字體。

5. DejaVu Sans Mono and His Family
因為字形端正大方,筆畫粗細均勻,實用性強,所以被廣泛應用於包裝設計、雜志期刊、名片設計等領域。同時,它也是許多Linux 發行版的標准配置。它基於Vera字體家族,已經能夠支持更多的字符了,並保持了Vera的外觀和感覺。
不只是Sans Mono,DejaVu家族的字體都值得一試。該字體和其font-family在github開源。

6. Fira Code
FiraCode 是 Fira 的擴展,而后者是由 Mozilla 委托設計的開源字體族。使得 FiraCode 與眾不同的原因是它修改了在代碼中常使用的一些符號的組合或連字,使得它看上去更具可讀性。這款字體有幾種不同的風格,特別是還包含 Retina 選項。該字體在github開源。
(顏值很高)

7. Noto Mono
巨量的語言覆蓋率,由 Google 中的一個大團隊打造。
官方介紹:
Noto is Google's own font that aims to support all languages in the world. Now it has supported almost all major living languages. For most languages, eight styles are supported: {regular, bold} x {normal, italic} x {sans serif, serif}. It is used by Android and Chrome OS as the default system fonts and is also recommended by Google's Material Design. What’s more important, Noto is open source and everyone can use it for free.
這是 Google 打造的龐大 Note 字體族中的等寬版本(Noto所有字體包高達1.1G)。盡管它並不是專為編程所設計,但它在 209 種語言(包括 emoji 顏文字!)中都可以使用,並且一直在維護和更新。該項目非常龐大,是 Google 宣稱 “組織全世界信息” 的使命的延續。感興趣可以觀看:google對此字體的介紹。

該字體在谷歌官網可以下載
8. JetBrains Mono
JetBrains Mono 是 JetBrains 公司專為開發者打造的免費開源編程字體,希望借此提升他們在查閱代碼時的體驗。Mono 字體在保證字符采用標准寬度的前提下,增加了小寫字母的高度,如此一來,每個字母將會使用更多的像素,有助於改進渲染效果。另外,Mono 字體舍棄了許多不必要的細節,這樣做的目的是當字體較小時,仍可保證文本的清晰顯示。更重要的是,字體的形式越簡單,眼睛感知的速度就越快,也就更容易辨識。
了解更多細節可以去JetBrains官網對此字體的介紹
In JetBrains IDEs
The most recent version of JetBrains Mono ships with your JetBrains IDE starting with v2019.3.
Select JetBrains Mono in the IDE settings: go to Preferences/Settings → Editor → Font, and then select JetBrains Mono from the Font dropdown.
(JetBrains用戶可以直接體驗)

用於其他編輯器可以去github下載,README中有詳細安裝教程。
總結
上述8款字體算是最常見的了,我自己一直在用Monoca(字體輕微的扭曲感像是自己手寫上去的),其余7款也多多少少用過一段時間。 常換字體,為的就是在枯燥的改bug期間換一下心情,增益創造力。所以,多換字體,有益於改bug。
