
🔤 Fira Code: monospace-kirjatüüp ligatuuridega programmeerimiseks

Mis on ligatuurid ja miks need koodis olulised on
Ligatuur on kahe või kolme märgi ühendamine üheks visuaalseks glüüfiks. Tüpograafias on see tehnika tuntud sajandeid: tähed „f" ja „i" sulanduvad kokku fi-ks, et vältida omavahelist kokkupõrget. Programmeerimises toimib sama mehhanism operaatoritega.
Kui kirjutad !=, millele järgneb => ja >= või ===, loeb su silm neid ühe loogilise tervikuna. Kuid ekraanil on need kaks või kolm eraldiseisvat märki ning su aju kulutab nende ühendamiseks mikropingutusi. Tööpäeva jooksul kuhjuvad need mikrooperatsioonid tuhandeteks. Ligatuurid lahendavad probleemi: != muutub läbikriipsutatud võrdusmärgiks (≠), => muutub paksuks nooleks ja >= näeb välja nagu ühtne „suurem või võrdne" sümbol.
Arendaja Nikita Prokopov (tonsky) ehitas selle idee ümber terve fondi. Fira Code on tasuta monospace-fontide perekond, mis põhineb Fira Monol ja mida on laiendatud programmeerimisligatuuridega. Tehniliselt on tegemist puhta ASCII-ga: lähtekood ei muutu, renderdamine toimub fondi tasemel. Fail jääb samaks, kuid loetavus muutub.
💡 Kiirülevaade:
- Laadi Fira Code alla GitHubi väljalaskest: ZIP ~2,5 MB, versioon 6.2, tasuta
- Paigalda font oma süsteemi ja määra redaktoris
editor.fontFamilyningeditor.fontLigatures - Vali stiilikomplektid ja märgivariandid vastavalt oma maitsele: alates
ss01kunicv31 - Kontrolli oma redaktori tuge ametlikust ühilduvustabelist GitHubis
Kuidas Fira Code koodi lugemist muudab
Esimene asi, mis pärast paigaldamist silma hakkab: võrdlusoperaatorid. Seal, kus varem oli != (hüüumärk + võrdusmärk), on nüüd ühtne läbikriipsutatud sümbol. <= ja >= näevad välja nagu matemaatilised märgid õpikust, mitte kaks eraldi ASCII-märki.
Nooled on omaette maagia. Igasugune sidekriipsude ja nurksulgude ahel moodustab pideva joone. Proovi -->, <-- ja <-->: need sulanduvad ühtseks nooleks. Fira Code 4-s asendas arendaja 44 üksikut nooleligatuuri nelja kombinatoorse reegliga. Nüüd võivad nooled olla mis tahes pikkusega. Isegi ---> ja <--- töötavad.
Mitmest märgist koosnevad operaatorid moodustavad samuti ühtsed glüüfid: === ja !==, :: ja //, |||. Kommentaarid nagu <!-- --> näevad korrektsemad välja. Funktsionaalse programmeerimise entusiastidele on olemas |> ja >>= koos =<<-ga ning kümneid teisi.
Allpool on sama PHP kood ilma Fira Code'ita ja sellega. Erinevus ei ole dramaatiline, kuid proovi „leida erinevused": su silm tabab operaatoreid kiiremini.
Ilma Fira Code'ita
1 /** 2 * Arrows --> and -->> illustrate data flow. 3 */ 4 $out = array(''); 5 $pieces = array( 6 '<!-- HTML -->', 'https://www.example.com/#!', 'red', '##', 0x0, '' 7 ); 8 for ($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 } 16 echo implode('', $out);
Fira Code'iga
1 /** 2 * Arrows --> and -->> illustrate data flow. 3 */ 4 $out = array(''); 5 $pieces = array( 6 '<!-- HTML -->', 'https://www.example.com/#!', 'red', '##', 0x0, '' 7 ); 8 for ($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 } 16 echo implode('', $out);
Mõlemad plokid on märk-märgilt identsed. Ainult font erineb. Teisel juhul muutusid <= ja >= ühtseteks märkideks, != ja !== näevad välja läbikriipsutatuna ning --> muutus nooleks. Lugemine kiireneb, mitte radikaalselt, kuid märgatavalt. Eriti pikkade koodiülevaatuste ajal.
Kus Fira Code töötab
Fonti toetavad kümned redaktorid: alates VS Code'ist ja Sublime Textist kuni Vimi ja Emacsini. Täielik nimekiri on saadaval ühilduvustabelis GitHubis.
Peamised platvormid:
VS Code: sisseehitatud tugi. Failis
settings.jsonlisa"editor.fontFamily": "'Fira Code'", "editor.fontLigatures": true. Stiilikomplektid lubatakse läbi"editor.fontLigatures": "'calt', 'ss02', 'ss09'".JetBrains IDE (IntelliJ, PhpStorm, WebStorm, Rider): alates versioonist 2016.2. Seadistamine: Editor → Font → vali Fira Code → luba Enable ligatures.
Sublime Text: alates järgust 3146. Kasutaja seadetes:
"font_face": "Fira Code".Vim/Neovim: GUI versioonides läbi
set guiligaturesja terminali versioonide jaoks paikade abil.Terminalid: Windowsi terminal, iTerm 2, Kitty, Konsole, Tabby, Hyper, WezTerm. Ei toetata: Alacritty, GNOME Terminal, xterm, PuTTY.
Brauserid: jsdelivr CDN-i kaudu. Lisa
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/distr/fira_code.css">ja lisafont-feature-settings: "calt";IE/vanema Edge'i jaoks.
Praktikas näeb paigaldus välja selline: laadi ZIP väljalaskest, paigalda TTF oma süsteemi, määra font oma redaktoris, luba ligatuurid. Kõik. Ei mingeid pluginaid, ei mingit maagiat, lihtsalt puhas @font-face OS-i tasemel.
Peenhäälestus: variandid ja stiilikomplektid
Fira Code'i peamine eelis konkurentide ees on paindlikkus. Ei meeldi konkreetne ligatuur? Lülita see välja. Tahad teistsugust tähekuju? Vali märgivariant. Kõik on granulaarselt kohandatav.
Märgivariandid (cv01-cv31) muudavad üksikute märkide kuju:
cv01-cv10: alternatiivsed kujundused tähtedeleajag, samutiijalcv11-cv13: nulli variandid (täpiga, ilma, kaldkriipsuga)cv14: alternatiivne kolmcv15: üles joondatud tärn (mugav C/C++ viitade jaoks)cv31: alternatiivsed sulud()
Stiilikomplektid (ss01-ss10) juhivad ligatuure:
ss01:&&alternatiivne renderdusss02:<=ilma kaldeta, horisontaalse joonegass03:&kirjutusmasina stiilisss04: dollari$märk ilma kaldkriipsutass05:@ilma lookleva sabatass09: taastab eraldi>>=/<<=/||=(eemaldatud vaikeseadetest versioonis v6, üksikasjad GitHubis)
Eraldi äramärkimist väärivad edenemisribad. Fira Code on esimene programmeerimise font, kus märgid U+EE00-U+EE0B renderdatakse edenemisriba ribana. Terminal väljastab jada ``, ja kasutaja näeb kena täitumist. Toe tuvastamiseks on välja pakutud keskkonnamuutuja UNICODE_PROGRESS_BAR=true.
Alternatiivid: millega võrrelda
Fira Code ei ole ainus ligatuuridega font. Turg on viimastel aastatel laienenud ja igal variandil on oma fookus:
Font | Litsents | Omadus |
|---|---|---|
JetBrains Mono | SIL OFL | Parem loetavus, varieeruv väiketähtede kõrgus, ümardusteta |
Cascadia Code | SIL OFL | Microsofti font terminalile, Powerline'i tugi, kastijoonistus |
Iosevka | SIL OFL | Kitsas font, koodiga genereeritud, maksimaalselt kompaktne |
Victor Mono | MIT | Tõelised seriifidega kursiivid, mitte lihtsalt kaldkiri |
Hasklig | SIL OFL | Source Code Pro haru Haskellile mõeldud ligatuuridega |
Monoid | MIT | Powerline'i tugi, kohandatav laius |
Fira Code võidab mitte üksikute tähtede ilu tõttu (see on subjektiivne), vaid oma ulatuse ja küpsuse tõttu. 81 000 tähte GitHubis, kuus suurt väljalaset, sajad toetatud redaktorid, 31 märgivarianti, edenemisribad, matemaatilised sümbolid, kastijoonistus ja Powerline'i tugi. Kui valid fonti aastateks, on ökosüsteem sama oluline kui esteetika.
⁉️🤔 Korduma kippuvad küsimused
Paigaldasin Fira Code'i, kuid ligatuurid ei ilmunud. Milles probleem?
Tõenäoliselt vajab su redaktor eraldi aktiveerimist. VS Code'is on selleks
"editor.fontLigatures": true. JetBrains IDE-s: märgi fondi seadetes „Enable ligatures". Terminalides kontrolli, kas su emulaator toetab ligatuure: Windows Terminal toetab, ConEmu mitte.
Ligatuurid segavad. Kas ma saan alles jätta ainult mõned?
Jah. Stiilikomplektid
ss01-ss10lubavad ja keelavad ligatuurigruppe. Näiteksss09taastab eraldi>>=ja<<=. Granulaarseks kohandamiseks saad fondi kohapeal uuesti ehitada käsuga./script/build.sh --features "ss02,ss08,cv14".
Fira Code on mu redaktoris aeglane. Kas see on normaalne?
Versioon 4 sisaldas renderdamise optimeerimist: 44 eraldi nooleligatuuri asendati nelja kombinatoorse reegliga, parandades jõudlust 100-150%. Kui see on praegu aeglane, kontrolli, kas samaaegselt on lubatud muid fondi funktsioone (calt pluss ss komplektid tavaliselt viivitusi ei põhjusta).
Kuidas on Fira Code'is kirillitsa tugi?
Kirillitsa komplekt on päritud Fira Monolt: loetav, neutraalne, pretensioonitu. See on piisav venekeelse koodi (kommentaarid, stringid) jaoks. Kuid kui kirjutad ulatuslikku dokumentatsiooni vene keeles, kaalu JetBrains Mono kasutamist: selle kirillitsa on paremini arendatud.
Kas tasub 2026. aastal Fira Code'ile üle minna
Fonti ei ole uuendatud alates 2021. aasta detsembrist. Ja kummalisel kombel on see hea märk. Kui toode jõuab olekusse „töötab ega lagune", pole sagedased commit'id vajalikud. Viie aasta jooksul ilma väljalaseteta ei ole keegi kirjutanud „Fira Code on surnud". Inimesed lihtsalt kasutavad seda.
Kui veedad programmeerides 4+ tundi päevas, paigalda Fira Code nädalaks. Tunned tagasipöördumist oma vana fondi juurde kiiremini, kui ootad: su silm harjub lugema operaatoreid ühtsete tervikutena ja naasmine „lahtivõetud" märkide juurde tundub sammuna tagasi. Halvim, mis juhtuda saab: kustutad fondi seitsme päeva pärast. Parim: leiad oma tööriista aastateks.



