Skip to content

Alt om WordPress, webutvikling — og mer til

🔤 Fira Code: en monospace-skrift med ligaturer for programmering

🔤 Fira Code: en monospace-skrift med ligaturer for programmering

Eksempel på kode med Fira Code-ligaturer i et redigeringsprogram

Hva ligaturer er og hvorfor de betyr noe i kode

En ligatur er kombinasjonen av to eller tre tegn til ett enkelt visuelt glyf. I typografi har denne teknikken vært kjent i århundrer: bokstavene «f» og «i» smelter sammen til fi for å unngå at de kolliderer med hverandre. I programmering fungerer den samme mekanismen med operatorer.

Når du skriver != etterfulgt av => og >= eller ===, leser øyet dem som ett enkelt logisk symbol. Men på skjermen er dette to eller tre separate tegn, og hjernen din bruker mikroanstrengelser på å kombinere dem. I løpet av en arbeidsdag summeres disse mikrooperasjonene til tusenvis. Ligaturer løser problemet: != blir til et overkrysset likhetstegn (≠), => blir en fet pil, og >= ser ut som et samlet «større enn eller lik»-symbol.

Utvikleren Nikita Prokopov (tonsky) bygde en hel skrifttype rundt denne ideen. Fira Code er en gratis monospace-familie basert på Fira Mono, utvidet med programmeringsligaturer. Under panseret er det ren ASCII: kildekoden endres ikke, renderingen skjer på skrifttypenivå. Filen forblir den samme, men leses annerledes.

💡 Rask oversikt:

  • Last ned Fira Code fra GitHub-utgivelsen: ZIP ~2,5 MB, versjon 6.2, gratis
  • Installer skrifttypen på systemet ditt og sett editor.fontFamily og editor.fontLigatures i editoren din
  • Velg stilistiske sett og tegnvarianter som passer din smak: fra ss01 til cv31
  • Sjekk editorens støtte i den offisielle kompatibilitetstabellen på GitHub

Hvordan Fira Code endrer kodelesing

Det første som fanger øyet etter installasjon: sammenligningsoperatorer. Der det før sto != (utropstegn + likhetstegn), er det nå et samlet overkrysset symbol. <= og >= ser ut som matematiske tegn fra en lærebok, ikke to separate ASCII-tegn.

Piler er en egen type magi. Enhver kjede av bindestreker og vinkelparenteser settes sammen til en kontinuerlig linje. Prøv -->, <-- og <-->: de smelter sammen til en heltrukken pil. I Fira Code 4 erstattet utvikleren 44 individuelle pelligaturer med fire kombinatoriske regler. Nå kan piler være vilkårlig lange. Selv ---> og <--- fungerer.

Flertegnsoperatorer settes også sammen til samlede glyfer: === og !==, :: og //, |||. Kommentarer som <!-- --> ser ryddigere ut. For funksjonell programmering-entusiaster finnes det |> og >>= med =<<, og dusinvis flere.

Nedenfor er den samme PHP-koden uten Fira Code og med den. Forskjellen er ikke dramatisk, men prøv å «finne forskjellene»: øyet fanger operatorer raskere.

Uten Fira Code

1/**
2 * Arrows --> and -->> illustrate data flow.
3 */
4$out = array('');
5$pieces = array(
6 '<!-- HTML -->', 'https://www.example.com/#!', 'red', '&#35;&#35;', 0x0, ''
7);
8for ($i = 0; $i <= 5; $i++) {
9 if ($i == '2' || $pieces[$i] === 'red') {
10 $hex__red = 0xca0000;
11 $out[] = $hex__red >> 15; // 404
12 } elseif ($i !== 3 && $pieces[$i] != false) {
13 $out[] = $pieces[$i];
14 }
15}
16echo implode('', $out);

Med Fira Code

1/**
2 * Arrows --> and -->> illustrate data flow.
3 */
4$out = array('');
5$pieces = array(
6 '<!-- HTML -->', 'https://www.example.com/#!', 'red', '&#35;&#35;', 0x0, ''
7);
8for ($i = 0; $i <= 5; $i++) {
9 if ($i == '2' || $pieces[$i] === 'red') {
10 $hex__red = 0xca0000;
11 $out[] = $hex__red >> 15; // 404
12 } elseif ($i !== 3 && $pieces[$i] != false) {
13 $out[] = $pieces[$i];
14 }
15}
16echo implode('', $out);

Begge blokkene er identiske, tegn for tegn. Bare skrifttypen er forskjellig. I det andre tilfellet ble <= og >= samlede tegn, != og !== ser overkrysset ut, og --> ble til en pil. Lesingen går raskere, ikke radikalt, men merkbart. Spesielt under lange kodegjennomganger.

Hvor Fira Code fungerer

Skrifttypen støttes av dusinvis av editorer: fra VS Code og Sublime Text til Vim og Emacs. Den fullstendige listen er tilgjengelig i kompatibilitetstabellen på GitHub.

Nøkkelplattformer:

  • VS Code: innebygd støtte. I settings.json, legg til "editor.fontFamily": "'Fira Code'", "editor.fontLigatures": true. Stilistiske sett aktiveres via "editor.fontLigatures": "'calt', 'ss02', 'ss09'".

  • JetBrains IDE (IntelliJ, PhpStorm, WebStorm, Rider): siden versjon 2016.2. Oppsett: Editor → Font → velg Fira Code → aktiver Enable ligatures.

  • Sublime Text: fra og med build 3146. I brukerinnstillinger: "font_face": "Fira Code".

  • Vim/Neovim: via set guiligatures i GUI-versjoner og patcher for terminalversjoner.

  • Terminaler: Windows Terminal, iTerm 2, Kitty, Konsole, Tabby, Hyper, WezTerm. Støttes ikke: Alacritty, GNOME Terminal, xterm, PuTTY.

  • Nettlesere: via jsdelivr CDN. Inkluder <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/distr/fira_code.css"> og legg til font-feature-settings: "calt"; for IE/legacy Edge.

I praksis ser installasjonen slik ut: last ned ZIP-en fra utgivelsen, installer TTF-en på systemet ditt, sett skrifttypen i editoren din, aktiver ligaturer. Det er alt. Ingen plugins, ingen magi, bare ren @font-face på OS-nivå.

Finjustering: varianter og stilistiske sett

Den største fordelen med Fira Code sammenlignet med konkurrenter er fleksibilitet. Liker du ikke en bestemt ligatur? Deaktiver den. Vil du ha en annen bokstavform? Velg en tegnvariant. Alt kan tilpasses på et granulært nivå.

Tegnvarianter (cv01-cv31) endrer formen på individuelle tegn:

  • cv01-cv10: alternative utforminger for bokstavene a og g, samt i og l
  • cv11-cv13: nullvarianter (med punktum, uten, skråstrek)
  • cv14: alternativ treer
  • cv15: stjerne justert til toppen (praktisk for C/C++-pekere)
  • cv31: alternative parenteser ()

Stilistiske sett (ss01-ss10) styrer ligaturer:

  • ss01: alternativ rendering av &&
  • ss02: <= uten skråstilling, med horisontal strek
  • ss03: & i skrivemaskinstil
  • ss04: dollar $ uten skråstrek
  • ss05: @ uten krøllete hale
  • ss09: gjenoppretter separate >>= / <<= / ||= (fjernet fra standard i v6, detaljer på GitHub)

Fremdriftsindikatorer fortjener spesiell omtale. Fira Code er den første programmeringsskrifttypen der tegnene U+EE00-U+EE0B rendres som en fremdriftsindikatorstripe. Terminalen sender ut en sekvens ``, og brukeren ser en fin fylling. For å oppdage støtte er en miljøvariabel UNICODE_PROGRESS_BAR=true blitt foreslått.

Alternativer: hva man kan sammenligne med

Fira Code er ikke den eneste skrifttypen med ligaturer. Markedet har utvidet seg de siste årene, og hvert alternativ har sitt eget fokus:

Skrifttype

Lisens

Egenskap

JetBrains Mono

SIL OFL

Forbedret lesbarhet, variert minuskelhøyde, ingen avrunding

Cascadia Code

SIL OFL

Microsofts skrifttype for Terminal, Powerline-støtte, bokstegning

Iosevka

SIL OFL

Smal skrifttype, kodegenerert, maksimalt kompakt

Victor Mono

MIT

Ekte kursiv med seriffer, ikke bare skråstilt

Hasklig

SIL OFL

Source Code Pro-gaffel med ligaturer for Haskell

Monoid

MIT

Powerline-støtte, tilpassbar bredde

Fira Code vinner ikke på grunn av skjønnheten til individuelle bokstaver (det er subjektivt), men på grunn av omfang og modenhet. 81 000 stjerner på GitHub, seks hovedutgivelser, hundrevis av støttede editorer, 31 tegnvarianter, fremdriftsindikatorer, matematiske symboler, bokstegning og Powerline-støtte. Når du velger en skrifttype for årene som kommer, betyr økosystemet like mye som estetikk.

⁉️🤔 Ofte stilte spørsmål

Jeg installerte Fira Code, men ligaturer dukket ikke opp. Hva er galt?

Mest sannsynlig krever editoren din separat aktivering. I VS Code er det "editor.fontLigatures": true. I JetBrains IDE: kryss av for «Enable ligatures» i skrifttypeinnstillingene. I terminaler, sjekk om emulatoren din støtter ligaturer: Windows Terminal gjør det, ConEmu gjør det ikke.

Ligaturer er distraherende. Kan jeg beholde bare noen?

Ja. Stilistiske sett ss01-ss10 aktiverer og deaktiverer ligaturgrupper. For eksempel gjenoppretter ss09 separate >>= og <<=. For granulær tilpasning kan du bygge skrifttypen lokalt med ./script/build.sh --features "ss02,ss08,cv14".

Fira Code er treg i editoren min. Er dette normalt?

Versjon 4 inkluderte en renderingsoptimalisering: 44 separate pelligaturer ble erstattet med fire kombinatoriske regler, noe som forbedret ytelsen med 100-150%. Hvis den er treg nå, sjekk om andre skrifttypefunksjoner er aktivert samtidig (calt pluss ss-sett forårsaker vanligvis ikke forsinkelser).

Hvordan er den kyrilliske støtten i Fira Code?

Det kyrilliske settet er arvet fra Fira Mono: lesbart, nøytralt, upretensiøst. Det er tilstrekkelig for kode på russisk (kommentarer, strenger). Men hvis du skriver omfattende dokumentasjon på russisk, vurder JetBrains Mono: dens kyrilliske er bedre utviklet.

Er det verdt å bytte til Fira Code i 2026

Skrifttypen har ikke blitt oppdatert siden desember 2021. Og dette er, merkelig nok, et godt tegn. Når et produkt når tilstanden «fungerer og brekker ikke», er ikke hyppige commits nødvendig. På fem år uten utgivelser har ingen skrevet «Fira Code er død». Folk bare bruker den.

Hvis du bruker 4+ timer om dagen på koding, installer Fira Code i en uke. Du vil merke tilbakegangen til din gamle skrifttype raskere enn du forventer: øyet ditt blir vant til å lese operatorer som samlede symboler, og å gå tilbake til «demonterte» tegn føles som et skritt bakover. Det verste som kan skje: du sletter skrifttypen etter syv dager. Det beste: du finner verktøyet ditt for årene som kommer.