Espanso : text expander open source pour accélérer la saisie
Combien de fois tapez-vous votre adresse email, votre signature, console.log(), ou une formule de politesse répétitive ? Espanso intercepte ces abréviations pendant que vous tapez et les remplace instantanément par le texte complet, dans n’importe quelle application.
Ce que fait Espanso
Espanso est un text expander : il surveille ce que vous tapez et remplace des déclencheurs courts par du texte long ou des templates dynamiques. Il fonctionne dans toutes les applications Windows, macOS et Linux, se configure en YAML, et supporte des variables dynamiques (date, heure, clipboard, scripts).
Installation
# Winget
winget install Espanso.Espanso
# Ou téléchargement sur espanso.org
Espanso tourne en tâche de fond dans la barre système après installation.
Configuration de base
La configuration principale se trouve dans %APPDATA%\espanso\match\base.yml :
matches:
# Adresse email
- trigger: ":email"
replace: "contact@mon-domaine.com"
# Signature
- trigger: ":sig"
replace: |
Cordialement,
Alice Dupont
Développeuse — Mon Entreprise
# Date du jour
- trigger: ":date"
replace: "{{mydate}}"
vars:
- name: mydate
type: date
params:
format: "%d/%m/%Y"
# Date + heure
- trigger: ":now"
replace: "{{datetime}}"
vars:
- name: datetime
type: date
params:
format: "%d/%m/%Y à %H:%M"
Snippets de développement
matches:
# console.log rapide
- trigger: ":cl"
replace: "console.log($|$);"
# Fonction arrow TypeScript
- trigger: ":fn"
replace: "($|$) => {}"
# Try/catch
- trigger: ":try"
replace: |
try {
$|$
} catch (error) {
console.error(error);
}
# TODO avec date
- trigger: ":todo"
replace: "// TODO ({{date}}): $|$"
vars:
- name: date
type: date
params:
format: "%Y-%m-%d"
# Import React
- trigger: ":ir"
replace: "import React from 'react';"
# Commentaire de section
- trigger: ":sec"
replace: "// ─────────────────────────────────────────────"
Templates avec formulaires
Espanso peut ouvrir un formulaire pour remplir des variables avant l’expansion :
matches:
- trigger: ":pr"
form: |
Titre de la PR : [[title]]
Ticket : [[ticket]]
Type : [[type]]
form_fields:
type:
type: choice
values:
- feat
- fix
- refactor
- docs
replace: |
## {{title}}
Ticket : {{ticket}}
Type : {{type}}
### Changements
-
### Tests
- [ ]
Variables dynamiques
matches:
# Contenu du presse-papier transformé en majuscules
- trigger: ":upper"
replace: "{{result}}"
vars:
- name: clipboard
type: clipboard
- name: result
type: script
params:
args:
- python3
- -c
- "import sys; print(sys.argv[1].upper())"
- "{{clipboard}}"
# UUID généré
- trigger: ":uuid"
replace: "{{uuid}}"
vars:
- name: uuid
type: script
params:
args:
- python3
- -c
- "import uuid; print(uuid.uuid4())"
Packages de la communauté
Espanso dispose d’un hub de packages : hub.espanso.org
# Installer un package
espanso install all-emojis # :smile: → 😊
espanso install html-utils # :a → <a href="">...</a>
espanso install git-utils # :gst → git status, :gco → git checkout
Organisation en fichiers multiples
%APPDATA%\espanso\match\
├── base.yml # snippets globaux
├── dev.yml # snippets développement
├── email.yml # templates email
└── signatures.yml # signatures
Tous les fichiers .yml du dossier match/ sont chargés automatiquement.
Désactiver temporairement
Alt+F9 → désactiver / réactiver Espanso globalement
Utile quand vous tapez délibérément un déclencheur dans un éditeur de code ou une présentation.
Filtrer par application
filter_apps:
- name: Espanso filter
filter_title: ".*Visual Studio Code.*"
matches:
- trigger: ":log"
replace: "console.log($|$);"
Certains snippets ne s’activent que dans VS Code, d’autres seulement dans Outlook, etc.
+ Les points forts
- Cross-platform — même configuration sous Windows, macOS et Linux
- YAML lisible et versionnable — les snippets se committent dans git, se partagent en équipe
- Formulaires interactifs — remplissez des templates avec des champs dynamiques
- Scripts — exécutez n’importe quel script Python, PowerShell, Node pour les valeurs dynamiques
- Packages communautaires — emoji, HTML, git, markdown — installez des collections prêtes à l’emploi
- Open source — aucun abonnement, aucune limite de snippets
- Les points faibles
- Configuration en YAML uniquement — pas d’interface graphique pour créer les snippets, tout se fait dans des fichiers texte
- Conflits possibles — les déclencheurs courts peuvent s’activer accidentellement. Préfixer avec
:ou;;réduit le risque - Redémarrage requis — modifier les fichiers YAML nécessite de recharger Espanso (
espanso restart)
En résumé
Espanso est l’outil qui amortit le mieux le temps d’installation. Une heure à configurer vos 20 snippets les plus courants économise des dizaines de minutes chaque jour. Adresses, signatures, templates de code, commandes git, dates — tout ce que vous tapez plus d’une fois par jour mérite un déclencheur Espanso.
Voir aussi :
- Flow Launcher — launcher applicatif complémentaire à Espanso
- Ditto — gérer l’historique du presse-papier
- AutoHotkey — aller plus loin dans l’automatisation Windows