目前适合编程的字体
· 阅读需 3 分钟
大家在意过自己的编程字体吗,我觉得字体是个很重要的东西,当我习惯一种字体后,切换其他字体时总有不适应,大大影响效率。
怎么挑选字体
选择一种字体长期使用是很有必要的,这里我从自己的经验列出一些对字体的需求:
- 等宽 Mono 字体,光英文等宽还不够,需要中文也等宽,且中文宽幅等于2个英文字符,如果想在代码注释里写表格,或者画 ascii 流程图,那么这点是必不可少的
- 能够轻松区分数字
0
和大写的O
,区分数字1
和大写的l
等等,也就是说部分字体必须衬线以区分,已经遇到过很多次微信截图OCR复制代码闹出的笑话了,但是不能所有字体都衬线,因为会很乱 - 集成 Nerd Fonts,当然这个可以自己 patch
- 能够合字,我对这个需求不是很高,部分人可能会觉 得代码更容易阅读
非常不错的字体
- Migu 1M:支持中文等宽,因为基于日文开发,部分汉字书写是日文习惯,没有集成 Nerd Font,拉丁字体感觉过于方正
- SF Mono:这个是苹果的等宽字体,不支持汉字等宽,但是这个项目 patch 了 Migu 1M 和 Nerd Fonts,效果还不错,就是非 mac 系统可能比较难搞,而且感觉在 1080P 这种较低分辨率的显示器上锯齿挺多
- Sarasa Gothic:支持中文等宽,感觉英文太细长,间距太近了,看着很累
- udev-gothic:支持中文等宽,基于 Jetbrains Font,还是拉丁字体间距太窄了,看着累
- ⭐ maple-font:支持中文等宽,相对 udev-gothic 来说,中文的间距过大了,但是中文在代码中的占比较少,所以效果很不错,我目前使用这个字体
参考链接
类似 的整理集合、相关讨论:
- NCBM/console-mono-fonts-collections: This project gathers monospace fonts which is compatible with wide/full-size characters, typically CJK characters, in horizontal metrics as well. Technically CJK characters are perfectly double wider than latin letters etc.
- CJK monoscape support? · Issue #20 · JetBrains/JetBrainsMono