Skip to content

Tout pour WordPress, le développement web — et plus encore

🔤 Fira Code : une police monospace avec ligatures pour la programmation

🔤 Fira Code : une police monospace avec ligatures pour la programmation

Exemple de code avec les ligatures Fira Code dans un éditeur

Ce que sont les ligatures et pourquoi elles sont importantes dans le code

Une ligature est la fusion de deux ou trois caractères en un seul glyphe visuel. En typographie, cette technique est connue depuis des siècles: les lettres «f» et «i» se combinent en fi pour éviter de se chevaucher. En programmation, le même mécanisme s’applique aux opérateurs.

Quand vous écrivez != suivi de => et >= ou ===, votre œil les lit comme un seul token logique. Mais à l’écran, ce sont deux ou trois caractères distincts, et votre cerveau dépense des micro-efforts pour les assembler. Sur une journée de travail, ces micro-opérations se comptent par milliers. Les ligatures résolvent le problème: != devient un signe égal barré (≠), => se transforme en flèche épaisse, et >= ressemble à un symbole unifié «supérieur ou égal».

Le développeur Nikita Prokopov (tonsky) a construit une police entière autour de cette idée. Fira Code est une famille monospace gratuite basée sur Fira Mono, enrichie de ligatures de programmation. Sous le capot, c’est de l’ASCII pur: le code source ne change pas, le rendu se fait au niveau de la police. Le fichier reste le même mais se lit différemment.

💡 Aperçu rapide:

  • Téléchargez Fira Code depuis la release GitHub: ZIP ~2,5 Mo, version 6.2, gratuit
  • Installez la police sur votre système et configurez editor.fontFamily et editor.fontLigatures dans votre éditeur
  • Choisissez les jeux stylistiques et les variantes de caractères selon vos goûts: de ss01 à cv31
  • Vérifiez la compatibilité de votre éditeur dans le tableau officiel sur GitHub

Comment Fira Code change la lecture du code

La première chose qui attire l’œil après l’installation: les opérateurs de comparaison. Là où il y avait != (point d’exclamation + égal), on voit désormais un symbole barré unifié. <= et >= ressemblent à des signes mathématiques de manuel scolaire, pas à deux caractères ASCII distincts.

Les flèches sont une autre forme de magie. Toute chaîne de tirets et de chevrons s’assemble en une ligne continue. Essayez -->, <-- et <-->: elles fusionnent en une flèche pleine. Dans Fira Code 4, le développeur a remplacé 44 ligatures de flèches individuelles par quatre règles combinatoires. Désormais, les flèches peuvent avoir n’importe quelle longueur. Même ---> et <--- fonctionnent.

Les opérateurs multi-caractères s’assemblent aussi en glyphes unifiés: === et !==, :: et //, |||. Les commentaires comme <!-- --> sont plus nets. Pour les amateurs de programmation fonctionnelle, il y a |> et >>= avec =<<, et des dizaines d’autres.

Voici le même code PHP sans Fira Code et avec. La différence n’est pas spectaculaire, mais essayez de «repérer les différences»: votre œil capte les opérateurs plus vite.

Sans 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);

Avec 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);

Les deux blocs sont identiques caractère par caractère. Seule la police change. Dans le second cas, <= et >= sont devenus des signes unifiés, != et !== semblent barrés, et --> s’est transformé en flèche. La lecture s’accélère, pas radicalement, mais de façon perceptible. Surtout lors des longues sessions de revue de code.

Où Fira Code fonctionne

La police est prise en charge par des dizaines d’éditeurs: de VS Code et Sublime Text à Vim et Emacs. La liste complète est disponible dans le tableau de compatibilité sur GitHub.

Plateformes clés:

  • VS Code: prise en charge native. Dans settings.json, ajoutez "editor.fontFamily": "'Fira Code'", "editor.fontLigatures": true. Les jeux stylistiques s’activent via "editor.fontLigatures": "'calt', 'ss02', 'ss09'".

  • IDE JetBrains (IntelliJ, PhpStorm, WebStorm, Rider): depuis la version 2016.2. Configuration: Editor → Font → sélectionnez Fira Code → cochez Enable ligatures.

  • Sublime Text: à partir de la build 3146. Dans les paramètres utilisateur: "font_face": "Fira Code".

  • Vim/Neovim: via set guiligatures dans les versions GUI et des patches pour les versions terminal.

  • Terminaux: Windows Terminal, iTerm 2, Kitty, Konsole, Tabby, Hyper, WezTerm. Non pris en charge: Alacritty, GNOME Terminal, xterm, PuTTY.

  • Navigateurs: via le CDN jsdelivr. Incluez <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/distr/fira_code.css"> et ajoutez font-feature-settings: "calt"; pour IE/Edge legacy.

En pratique, l’installation ressemble à ceci: téléchargez le ZIP depuis la release, installez le TTF sur votre système, définissez la police dans votre éditeur, activez les ligatures. C’est tout. Pas de plugin, pas de magie, juste du pur @font-face au niveau de l’OS.

Réglage fin: variantes et jeux stylistiques

Le principal avantage de Fira Code par rapport à la concurrence est sa flexibilité. Vous n’aimez pas une ligature en particulier? Désactivez-la. Vous voulez une forme de lettre différente? Choisissez une variante de caractère. Tout est personnalisable de façon granulaire.

Les variantes de caractères (cv01-cv31) modifient la forme de caractères individuels:

  • cv01-cv10: dessins alternatifs pour les lettres a et g, ainsi que i et l
  • cv11-cv13: variantes du zéro (avec point, sans, barré)
  • cv14: trois alternatif
  • cv15: astérisque aligné en haut (pratique pour les pointeurs en C/C++)
  • cv31: parenthèses alternatives ()

Les jeux stylistiques (ss01-ss10) contrôlent les ligatures:

  • ss01: rendu alternatif de &&
  • ss02: <= sans oblique, avec barre horizontale
  • ss03: & style machine à écrire
  • ss04: dollar $ sans barre
  • ss05: @ sans queue bouclée
  • ss09: restaure les >>= / <<= / ||= séparés (retirés du défaut dans la v6, détails sur GitHub)

Les barres de progression méritent une mention spéciale. Fira Code est la première police de programmation où les caractères U+EE00-U+EE0B s’affichent comme une bande de progression. Le terminal produit une séquence ``, and the user sees a nice fill. For detecting support, an environment variable UNICODE_PROGRESS_BAR=true a été proposée.

Alternatives: à quoi comparer

Fira Code n’est pas la seule police avec ligatures. Le marché s’est élargi ces dernières années, et chaque option a sa propre orientation:

Police

Licence

Caractéristique

JetBrains Mono

SIL OFL

Lisibilité améliorée, hauteur de bas-de-casse variée, sans arrondi

Cascadia Code

SIL OFL

Police Microsoft pour Terminal, prise en charge Powerline, dessin de boîtes

Iosevka

SIL OFL

Police étroite, générée par code, maximalement compacte

Victor Mono

MIT

Vraies italiques avec empattements, pas seulement inclinées

Hasklig

SIL OFL

Fork de Source Code Pro avec ligatures pour Haskell

Monoid

MIT

Prise en charge Powerline, largeur personnalisable

Fira Code l’emporte non pas par la beauté des lettres individuelles (c’est subjectif), mais par son ampleur et sa maturité. 81 000 étoiles sur GitHub, six versions majeures, des centaines d’éditeurs pris en charge, 31 variantes de caractères, barres de progression, symboles mathématiques, dessin de boîtes et prise en charge Powerline. Lorsqu’on choisit une police pour des années, l’écosystème compte autant que l’esthétique.

⁉️🤔 Foire aux questions

J’ai installé Fira Code, mais les ligatures n’apparaissent pas. Qu’est-ce qui ne va pas?

Très probablement, votre éditeur nécessite une activation séparée. Dans VS Code, c’est "editor.fontLigatures": true. Dans les IDE JetBrains: cochez «Enable ligatures» dans les paramètres de police. Dans les terminaux, vérifiez si votre émulateur prend en charge les ligatures: Windows Terminal oui, ConEmu non.

Les ligatures sont distrayantes. Puis-je n’en garder que certaines?

Oui. Les jeux stylistiques ss01-ss10 activent et désactivent des groupes de ligatures. Par exemple, ss09 restaure les >>= et <<= séparés. Pour une personnalisation granulaire, vous pouvez reconstruire la police localement avec ./script/build.sh --features "ss02,ss08,cv14".

Fira Code est lente dans mon éditeur. Est-ce normal?

La version 4 a inclus une optimisation du rendu: 44 ligatures de flèches distinctes ont été remplacées par quatre règles combinatoires, améliorant les performances de 100 à 150%. Si c’est lent maintenant, vérifiez si d’autres fonctionnalités de police sont activées simultanément (calt plus les jeux ss ne causent généralement pas de ralentissements).

Quelle est la prise en charge du cyrillique dans Fira Code?

Le jeu cyrillique est hérité de Fira Mono: lisible, neutre, sans prétention. Il est suffisant pour du code en russe (commentaires, chaînes). Mais si vous rédigez une documentation abondante en russe, envisagez JetBrains Mono: son cyrillique est mieux développé.

Est-ce que ça vaut le coup de passer à Fira Code en 2026

La police n’a pas été mise à jour depuis décembre 2021. Et c’est, curieusement, un bon signe. Quand un produit atteint l’état de «ça marche et ça ne casse pas», les commits fréquents ne sont pas nécessaires. En cinq ans sans release, personne n’a écrit «Fira Code est mort». Les gens l’utilisent, tout simplement.

Si vous passez plus de 4 heures par jour à coder, installez Fira Code pendant une semaine. Vous ressentirez le retour à votre ancienne police plus vite que vous ne le pensez: votre œil s’habitue à lire les opérateurs comme des tokens unifiés, et revenir à des caractères «désassemblés» donne l’impression de faire un pas en arrière. Le pire qui puisse arriver: vous supprimez la police après sept jours. Le meilleur: vous trouvez votre outil pour les années à venir.