コーディング用フォント決定版Fira Code
(更新日時 )
Fira Codeとは
Fira Code とは、リガチャを使いプログラミングでよく使う記号をわかり やすく表現しようという等幅フォントの拡張です。ベースとなる等幅フォントには Fira Mono が使用されています。
Fira Mono とはFirefox OSのデフォルト・フォントであるFira Sansに合わせて デザインされた等幅フォントです。 いずれもFF Metaがベースとなっているようです。
字体の比較です。
グリフなど微妙に異なっています(異なるフォントですから当り前ですが) が、間違えやすい 1, i, j, l などは、Myricaと比較してもかなり判別しや すいと思います。
若干幅の設定が広すぎるような気がしますが、そのあたりはiTerm2での 設定で調整できます。
導入には Homebrewを使用します。
エラーがなければ、無事FireCodeフォントができているはずです。フォントブック で確認して見ましょう。
また、以下がiTerm2での設定です。
重要なのは、「リガチャ」の指定をチェックすることと、 ~Non-ASCII文字に ついては日本語フォントを指定することです。~ Fire Codeには日本語フォント は含まれていません。
( 2018-01-13 ) Non-ASCII文字を指定してはいけませんでした。
Fira Codeはそんなに読みやすいのか
Fira Codeを使うとコードがメチャメチャ読みやすくなります。
これまで私が使ってきたフォントは、英文字の判読性の悪い文字を問題として 多くは、プログラミングで読みやすいInconsolataと日本語フォントの合成をして 多少グリフを調整している程度のものがほとんどでした。
Fira Codeは、元になったFira Mono自体の可読性もよく更に「 リガチャを使いプログラミングでよく使う記号をわかりやすく表現しよう」 としたものです。
たとえば、リガチャを指定しない例が以下です。
次はリガチャを使った例です。
プログラムでよく使う等号や不等号がいい感じで1文字で表現されて います。
またPowerline、Airlineなどを使っている場合は、対応したフォントも 含まれているのでお手軽に利用できます。わたしはNeovimで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)) } }
個人的には非常に気にいったので、しばらく使っていきます。