Back

Programming Fonts

some commonly used programming fonts.

Programming Fonts

我对于编程字体关注的几个点:

  1. 等宽

    必需。

    以下字体均为等宽字体。

  2. 易混淆字符的区分

    必需。

    例如:

    数字 1 和 小写字母 i、l、大写字母 I、L

    数字 0 和 小写字母 a、o、大写字母 O

  3. 支持 ligatures

    可选。

    旧字体不支持,近年出的字体一般都已经支持了。

其他常见的关注点:

  1. 英文字符 1/2 宽度

    中英文混排时一个中文宽度 == 两个英文宽度

  2. 支持 powerline

    vim 的 statusline plugin

Anonymous Pro

  • 描述

    比较古老的一款字体

  • 问题

    1. 字符的装饰过多
    2. 不支持 ligatures
  • 结论

    作为某些旧系统下的选择

anonymous pro
anonymous pro

Cascadia Code

  • 描述

    Microsoft 在 Consolas 之后的新编程字体

  • 优点

    1. 持续更新中
    2. 支持 ligatures
  • 问题

    1. 小写字母 a 很有特点,但不太喜欢
  • 结论

    常用选择之一

cascadia code
cascadia code

Consolas

  • 描述

    Microsoft 在 windows 操作系统中自带的编程字体。

  • 问题:

    1. 不支持 ligatures
  • 结论

    操作系统自带,作为默认字体

consolas
consolas

Consolas with Yahei

  • 描述

    一款 Consolas 和微软雅黑的混合字体,比常见的 Consolas-Yahei-hybrid 字体适配得更好。

  • 优点

    1. 中英混合字体,在一些环境受限且需要中英混排的场景中非常有用
    2. 2英文宽度 = 1中文宽度
  • 问题

    1. 不支持 ligatures
  • 结论

    根据场景使用

consolas with yahei
consolas with yahei

Droid Sans Mono

  • 问题

    1. 不支持 ligatures
  • 结论

    很少使用

droid sans mono
droid sans mono

Fantasque Sans Mono

  • 优点

    1. 支持 ligatures
    2. 字体有手写的感觉,比较生动
  • 结论

    轮换选择

fantasque sans mono
fantasque sans mono

Fira Code

  • 描述

    基于 Mozilla 的 Fira Mono,很全面的编程字体。

  • 优点

    1. 小写字母 r 非常锐利,令人印象深刻
    2. 支持 ligatures
  • 结论

    主力选择

fira code
fira code

Hack

  • 问题

    1. 不支持 ligatures
    2. 左右中括号和大括号的高度对齐似乎不太一致
  • 结论

    偶尔选择

hack
hack

Hasklig

  • 描述

    Adobe 的 Source Code Pro 的变体

  • 优点

    1. 支持 ligatures
  • 结论

    常用选择之一

hasklig
hasklig

Hermit

  • 优点

    1. 小写字母非常另类
  • 问题

    1. 不支持 ligatures
  • 结论

    偶尔选择

hermit
hermit

IBM Plex Mono

  • 描述

    IBM 出品。

  • 问题

    1. 不支持 ligatures
    2. 小写字母 f 下边的横线感觉不好看
  • 结论

    很少使用

ibm plex mono
ibm plex mono

Inconsolata

  • 描述

    跟 Consolas 风格接近,但是字符更瘦,字体更细

  • 结论

    偶尔选择

inconsolata
inconsolata

JetBrains Mono

  • 描述

    JetBrains 公司推出的编程字体。

  • 优点

    1. 支持 ligatures
  • 问题

    1,i,l 最下边的线太宽

  • 结论

    轮换选择

jetbrains mono
jetbrains mono

Monoid

  • 优点

    1. 支持 ligatures
  • 问题

    1. 字符实际上不是等宽的,只是占位等宽,比如小写字母 i,l 都很窄,导致字符两边的空白比较明显
  • 结论

    很少使用

monoid
monoid

Roboto Mono

  • 优点

    1. 括号宽度较窄
  • 问题

    1. 不支持 ligatures
  • 结论

    轮换选择

roboto mono
roboto mono

Source Code Pro

  • 描述

    Adobe 出品

  • 问题

    1. 不支持 ligatures
  • 结论

    轮换选择

source code pro
source code pro

Ubuntu Mono

  • 描述

    Canonical 出品

  • 优点

    1. 2英文宽度 = 1中文宽度
  • 问题

    1. 字符偏小,间距过于紧密
  • 结论

    根据场景使用

ubuntu mono
ubuntu mono

Victor Mono

  • 优点

    1. 支持 ligatures
  • 结论

    轮换选择

victor mono
victor mono

Mononoki

  • 问题

    1. 不支持 ligatures
    2. @ 字符实心
  • 结论

    偶尔选择

mononoki
mononoki

M Plus 1 Code

  • 优点

    1. 2英文宽度 = 1中文宽度
  • 问题

    1. 不支持 ligatures
    2. 字母 c 不太喜欢
    3. 整体字间距较小
  • 结论

    根据场景使用

m plus 1 code
m plus 1 code

Licensed under CC BY-NC-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy