Leia em: English | Español | 简体中文 | 日本語
Os programadores usam muitos símbolos, frequentemente codificados com vários caracteres. Para a mente humana, sequências como ->, <= ou := são tokens lógicos únicos, mesmo que ocupem dois ou três caracteres na tela. Seus olhos gastam uma quantidade quase nula de energia para escanear, analisar e unir vários caracteres num único caractere lógico. Idealmente, todas as linguagens de programação deveriam ser projetadas com símbolos Unicode completos para operadores, mas este ainda não é o caso.
Fira Code é uma fonte monoespaçada gratuita que contém ligaduras para combinações comuns de vários caracteres na programação. É apenas um recurso de renderização de fonte: o código subjacente permanece compatível com ASCII. Isso ajuda com a ler e entender o código mais rapidamente. Para algumas sequências frequentes, como .. ou //, as ligaduras nos permitem corrigir o espaçamento.
E então, consulte:
À esquerda: as ligaduras conforme renderizadas no Fira Code. À direita: as mesmas sequências de caracteres sem ligaduras.
Fira Code vem com uma grande variedade de setas. Melhor ainda: você pode deixá-las do tamanho que quiser e combinar os fragmentos de início, meio e fim como preferir!
Fira Code não é só sobre ligaduras. A pontuação e pares de letras frequentes também contam com alguns ajustes finos.
Fira Code vem com algumas variantes de caracteres diferentes (cv01, cv02 etc.), conjuntos de estilo (ss01, ss02 etc.) e outros recursos de fonte (zero, onum, calt etc.) para que todos possam escolher o que é melhor para si. Veja como habilitar.
Algumas ligaduras podem ser alteradas ou habilitadas usando conjuntos de estilo ou variantes de caracteres:
Por ser uma fonte de programação, o Fira Code possui um suporte fantástico para desenhar ASCII ou caixas, powerline e outras formas de IU do console:
Fira Code é a primeira fonte de programação a oferecer glifos dedicados para renderizar barras de progresso:
Em ação:
Esperamos que mais fontes de programação adotem esta convenção e lancem suas próprias versões.
A cobertura Unicode torna o Fira Code uma ótima escolha para escrita matemática:
| Funciona | Não funciona |
|---|---|
| Arduino IDE (2.0+, segue as mesmas instruções do vscode) |
Adobe Dreamweaver |
| Abricotine | Delphi IDE |
| Android Studio (2.3+, instruções) | Standalone Emacs (solução alternativa) |
| Anjuta (a menos que no EOF) | IDLE |
| AppCode (2016.2+, instruções) | KDevelop 4 |
| Atom 1.1 ou mais recente (instruções) | Monkey Studio IDE |
| BBEdit (14.6+ instruções) | UltraEdit (Windows) |
| Brackets (com este plugin) | |
| Chocolat | |
| CLion (2016.2+, instruções) | |
| Cloud9 (instruções) | |
| Coda 2 | |
| CodeLite | |
| CodeRunner | |
| Comma (Em: Preferências > Editor > Fonte) | |
| CotEditor | |
| Eclipse | |
| EditPad | |
| elementary Code | |
| Geany (1.37+) | |
| gEdit / Pluma | |
| GNOME Builder | |
| Godot | |
| GoormIDE (instruções) | |
| gVim (Windows, GTK) | |
| IntelliJ IDEA (2016.2+, instruções) | |
| Kate, KWrite | |
| KDevelop 5+ | |
| Komodo | |
| Leafpad | |
| LibreOffice | |
| LightTable (instruções) | |
| LINQPad | |
| MacVim 7.4 ou mais recente (instruções) | |
| Mancy | |
| MATLAB (instruções) | |
| Meld | |
| Mousepad | |
| NeoVim-gtk | |
| NetBeans | |
| Notepad (Windows) | |
| Notepad++ (instruções) | |
| Notepad3 (instruções) | |
| Nova | |
| PhpStorm (2016.2+, instruções) | |
| PyCharm (2016.2+, instruções) | |
| QOwnNotes (21.16.6+) | |
| QtCreator | |
| Rider | |
| RStudio (instruções) | |
| RubyMine (2016.2+, instruções) | |
| Scratch | |
| Scribus (1.5.3+) | |
| SublimeText (3146+) | |
| Spyder IDE (apenas com Qt5) | |
| SuperCollider 3 | |
| TeXShop | |
| TextAdept (Linux, macOS) | |
| TextEdit | |
| TextMate 2 | |
| UltraEdit (UEX) (Linux) | |
| VimR (instruções) | |
| Visual Studio (2015+, instruções) | |
| Visual Studio Code (instruções) | |
| WebStorm (2016.2+, instruções) | |
| Xamarin Studio/Monodevelop | |
| Xcode (8.0+, caso contrário, com plugin) | |
| Xi | |
| Provavelmente funciona: Smultron, Vico | Em questão: Code::Blocks IDE |
| Funciona | Não funciona |
|---|---|
| crosh (instruções) | Alacritty |
| Ghostty | Asbru Connection Manager |
| Hyper (veja #3607) | Cmder |
| iTerm 2 | ConEmu |
| Kitty | GNOME Terminal (ticket) |
| Konsole | gtkterm (ticket) |
| Mintty | guake (ticket) |
| QTerminal | LXTerminal (ticket) |
| st (correção) | 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) |
<!-- 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);/* Especifique em CSS */
code { font-family: 'Fira Code', monospace; }
@supports (font-variation-settings: normal) {
code { font-family: 'Fira Code VF', monospace; }
}- IE 10+, Edge Legacy: habilite com
font-feature-settings: "calt"; - Firefox
- Safari
- Navegadores baseados em Chromium (Chrome, Opera)
- ACE
- CodeMirror (habilite com
font-variant-ligatures: contextual;)
Fontes monoespaçadas gratuitas com ligaduras:
Fontes monoespaçadas pagas com ligaduras:
Caso deseje alterar os FiraCode.glyphs e construir você mesmo os arquivos OTF/TTF/WOFF, essa é a configuração que eu uso no macOS:
# instala todas as ferramentas necessárias para construir
./script/bootstrap_macos.sh
# constrói os arquivos de fonte
./script/build.sh
# instala os OTFs em ~/Library/Fonts
cp distr/otf/*.otf ~/Library/FontsDe forma alternativa, você pode construir o Fira Code usando o Docker:
# instala as dependências num contêiner e constrói os arquivos de fonte
make
# compacta os arquivos de fonte do dist/ em um zip
make packageSe você quiser habilitar permanentemente certos conjuntos de estilos ou variações de caracteres, talvez porque o editor de sua escolha não permita que você os alterne individualmente, você pode fornecer os recursos desejados em uma lista separada por vírgulas para o script de compilação por meio da flag -f / --features.
Padrão: nenhum.
Para separar diferentes versões da sua fonte, você pode especificar o nome da família da fonte desejada com a flag -n / --family-name. O valor especial 'features' adicionará uma lista de recursos habilitados ordenada e separada por espaços ao nome da família padrão.
Padrão: "Fira Code"
Você também pode limitar a espessura da fonte que será criada com a opção -w / --weights.
Padrão: "Light,Regular,Retina,Medium,SemiBold,Bold"
# localmente no seu shell
./script/build.sh --features "ss02,ss08,ss10,cv03,cv07,cv14" --family-name "Fira Code straight" --weights "Regular,Bold"
# ou por meio de um contêiner docker (cria um nome de família 'Fira Code cv01 cv02 cv06 cv31 onum ss01 ss03 ss04 zero')
docker run --rm -v "${PWD}":/opt tonsky/firacode:latest ./script/build.sh -f "cv01,cv02,cv06,ss01,zero,onum,ss03,ss04,cv31" -n "features"
# no Git Bash do Git for Windows, ou qualquer outro shell baseado em MSYS2, talvez seja necessário desabilitar a conversão de caminho
MSYS2_ARG_CONV_EXCL="*" docker run --rm -v "${PWD}":/opt tonsky/firacode:latest ./script/build.sh -f "ss02,ss03,ss04,ss05,ss06,ss07"- Autor: Nikita Prokopov @nikitonsky
- Baseado em: Fira Mono
- Inspirado por: Hasklig
- Traduzido por: Kauan Farias @kau19an











