コーディング用フォント決定版Fira Code

Fira Codeとは

Fira Code とは、リガチャを使いプログラミングでよく使う記号をわかり やすく表現しようという等幅フォントの拡張です。ベースとなる等幅フォントには Fira Mono が使用されています。

Fira Mono とはFirefox OSのデフォルト・フォントであるFira Sansに合わせて デザインされた等幅フォントです。 いずれもFF Metaがベースとなっているようです。

字体の比較です。

Fira code vs Myrica

Fira Code vs Myrica

グリフなど微妙に異なっています(異なるフォントですから当り前ですが) が、間違えやすい 1, i, j, l などは、Myricaと比較してもかなり判別しや すいと思います。

若干幅の設定が広すぎるような気がしますが、そのあたりはiTerm2での 設定で調整できます。

導入には Homebrewを使用します。

$ brew tap caskroom/fonts
$ brew cask install font-fira-code

エラーがなければ、無事FireCodeフォントができているはずです。フォントブック で確認して見ましょう。

また、以下がiTerm2での設定です。

重要なのは、「リガチャ」の指定をチェックすることと、 ~Non-ASCII文字に ついては日本語フォントを指定することです。~ Fire Codeには日本語フォント は含まれていません。

( 2018-01-13 ) Non-ASCII文字を指定してはいけませんでした。

iTerm2の設定

iTerm2でのフォント設定

Fira Codeはそんなに読みやすいのか

Fira Codeを使うとコードがメチャメチャ読みやすくなります。

これまで私が使ってきたフォントは、英文字の判読性の悪い文字を問題として 多くは、プログラミングで読みやすいInconsolataと日本語フォントの合成をして 多少グリフを調整している程度のものがほとんどでした。

Fira Codeは、元になったFira Mono自体の可読性もよく更に「 リガチャを使いプログラミングでよく使う記号をわかりやすく表現しよう」 としたものです。

たとえば、リガチャを指定しない例が以下です。

リガチャなし

リガチャなしのFira Code

次はリガチャを使った例です。

リガチャあり

リガチャありのFira Code

プログラムでよく使う等号や不等号がいい感じで1文字で表現されて います。

またPowerline、Airlineなどを使っている場合は、対応したフォントも 含まれているのでお手軽に利用できます。わたしはNeovimでLightlineを 使っているので設定してみました。

Lightline with Fira Code

Fira CodeのPowerline互換フォントを使用したLightline

ちなみに文字コードは以下の通りです。

Lock
uE0A2
Network
uE0A0
Spearator
uE0B0, uE0B2
Separator-thin
uE0B1, uE0B3

さて、あまりに感じがよく幸いにしてWeb Fontも提供されていたので、 早速このサイトのコードのフォントも Fira Codeをしてしてみました。

以下はサンプルです。

let closure: (Int?) -> String = {
    return "Number: \($0 ?? 0)"
}

for i in 1..<100 {
    guard i != 2 else { continue }

    if i == 42 {
        print(closure(i * 10))
    } else if i >= 50 || i <= 75 {
        print(closure(i))
    } else if i >= 50 && i <= 75 {
        print(closure(i))
    }
}

個人的には非常に気にいったので、しばらく使っていきます。


Comments !