Zheng Junyi
9/16/2017
程序员福利!!!
今天为大家带来一个专为程序员写程序设计的字体 —— Fira Code
Fira 是 Mozilla 公司(火狐浏览器她爹)主推的字体系列。Fira Code 是其中的一员,专为写程序而生。出来具有等宽等基本属性外,还加入了编程连字特性(ligatures)。
Fira Code 就是利用这个特性对编程中的常用符号进行优化,比如把输入的「!=」直接显示成「≠」或者把「>=」变成「≥ 」等等,以此来提高代码的可读性。
Fira Code 字体包含极其丰富的箭头符号。更棒的是:你可以自由调整箭头长度,并随心组合起始段、中间段与末端段的样式!
Fira Code 不仅仅专注于连字设计,还对标点符号及高频字母组合进行了细致的微调优化。
Fira Code 提供了多种字符变体(cv01、cv02等)、风格集(ss01、ss02等)及其他字体特性(zero、onum、calt等),以便用户根据个人偏好自由选择。
某些连字可以通过样式集/字符变体进行调整或启用:
作为一款编程字体,Fira Code 对 ASCII、Powerline 以及其他形式的控制台界面提供了出色的支持:
Fira Code 还是首款为进度条显示提供专用字形设计的编程字体:
Fira Code 还提供对数学字符的支持:
访问此网站:https://github.com/tonsky/FiraCode
找到 Fira_Code_X.X.zip 这个图片,单击它。
单击这个地址可以下载 v6.2 版的 Fira Code -> Download Fire Code v6.2
下载好后,解压它,打开解压后得到的文件夹。
打开 /variable_ttf 文件夹 -> 双击 FiraCode-VF.ttf -> 「安装」。
使用以下命令安装:
目前有以下编辑器、浏览器可以完美支持 Fira Code:
介绍一下在 VS Code 中如何配置(因为VS Code 是我主要使用的编辑器,别的不是很熟悉)
打开 VS Code。
「Code」 -> 「首选项」 -> 「设置」-> 修改「Editor: Font Family」为:
别的 IDE 可以参考 -> https://github.com/tonsky/FiraCode/wiki
可以将 Fira Code 设为 Chrome 的 monospace,即等宽字体。
这里设置的 monospace 的优先级取决于网站的 CSS 的声明。
打开 Chrome。点击右上角的「┇」->「设置」。
「外观」->「自定义字体」。
「等宽固定字体」选择 Fira Code。
IE 10+, Edge Legacy: enable with font-feature-settings: "calt";
Firefox
Safari
Chromium-based browsers (Chrome, Opera)
ACE
CodeMirror (enable with font-variant-ligatures: contextual;)
'Fira Code', Menlo, Monaco, 'Courier New', monospace
brew install --cask font-fira-code
<!-- HTML -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/firacode@6.2.0/distr/fira_code.css">
/* CSS */
@import url(https://cdn.jsdelivr.net/npm/firacode@6.2.0/distr/fira_code.css);
/* Specify in CSS */
code { font-family: 'Fira Code', monospace; }
@supports (font-variation-settings: normal) {
code { font-family: 'Fira Code VF', monospace; }
}
Works | Doesn’t work |
---|---|
crosh (instructions) | Alacritty |
Ghostty | Asbru Connection Manager |
Hyper (see #3607) | Cmder |
iTerm 2 | ConEmu |
Kitty | GNOME Terminal (ticket) |
Konsole | gtkterm (ticket) |
Mintty | guake (ticket) |
QTerminal | LXTerminal (ticket) |
st (patch) | mate-terminal |
Tabby | PuTTY |
Terminal.app | rxvt |
Termux | sakura (ticket) |
Token2Shell | SecureCRT |
Wez’s terminal | Terminator (ticket) |
Windows Terminal | terminology |
ZOC (macOS) | Tilix |
Windows Console | |
xfce4-terminal (ticket) | |
xterm | |
ZOC (Windows) |
Works | Doesn’t work |
---|---|
Arduino IDE (2.0+,same instructions as vscode) | Adobe Dreamweaver |
Abricotine | Delphi IDE |
Android Studio (2.3+, instructions) | Standalone Emacs (workaround) |
Anjuta (unless at the EOF) | IDLE |
AppCode (2016.2+, instructions) | KDevelop 4 |
Atom 1.1 or newer (instructions) | Monkey Studio IDE |
BBEdit (14.6+ instructions) | UltraEdit (Windows) |
Brackets (with this plugin) | |
Chocolat | |
CLion (2016.2+, instructions) | |
Cloud9 (instructions) | |
Coda 2 | |
CodeLite | |
CodeRunner | |
Comma (Under: Preferences > Editor > Font) | |
CotEditor | |
Eclipse | |
EditPad | |
elementary Code | |
Geany (1.37+) | |
gEdit / Pluma | |
GNOME Builder | |
Godot | |
GoormIDE (instructions) | |
gVim (Windows, GTK) | |
IntelliJ IDEA (2016.2+, instructions) | |
Kate, KWrite | |
KDevelop 5+ | |
Komodo | |
Leafpad | |
LibreOffice | |
LightTable (instructions) | |
LINQPad | |
MacVim 7.4 or newer (instructions) | |
Mancy | |
MATLAB (instructions) | |
Meld | |
Mousepad | |
NeoVim-gtk | |
NetBeans | |
Notepad (Windows) | |
Notepad++ (instructions) | |
Notepad3 (instructions) | |
Nova | |
PhpStorm (2016.2+, instructions) | |
PyCharm (2016.2+, instructions) | |
QOwnNotes (21.16.6+) | |
QtCreator | |
Rider | |
RStudio (instructions) | |
RubyMine (2016.2+, instructions) | |
Scratch | |
Scribus (1.5.3+) | |
SublimeText (3146+) | |
Spyder IDE (only with Qt5) | |
SuperCollider 3 | |
TeXShop | |
TextAdept (Linux, macOS) | |
TextEdit | |
TextMate 2 | |
UltraEdit (UEX) (Linux) | |
VimR (instructions) | |
Visual Studio (2015+, instructions) | |
Visual Studio Code (instructions) | |
WebStorm (2016.2+, instructions) | |
Xamarin Studio/Monodevelop | |
Xcode (8.0+, otherwise with plugin) | |
Xi | |
Probably work: Smultron, Vico | Under question: Code::Blocks IDE |