Espanso
Table des matières
Présentation
Espanso est un outil que j’ai découvert il y a quelques semaines et dont je ne pourrais plus me passer. En gros il permet de remplacer un mot-clé par une chaîne de caractères.
Voici quelques exemples : (Evidemment aucune des infos données en exemple ici, sont vrais, je vous vois les coquinous ! 😋)

Pour mon usage, il me permet de coller simplement à partir d’une clé, des données un peu longue à écrire ou que je ne connais pas forcément par cœur comme par exemple mon Siret/Siren, mes adresses postales, mes emails.
Il permet également de coller la date du jour au format que vous voulez, ainsi que l’heure.
L’outil est vraiment puissant et me faire gagner du temps et de la fluidité dans mon quotidien.
Tout est paramétrable dans un fichier de configuration que nous verrons un peu plus loin et est multiplateforme.
Installation
Télécharger l’outil sur le site du développeur (oui c’est le projet perso d’une seule personne qui le met à disposition gratuitement de tous).
Sur MacOs vous pouvez tout simplement copier/coller la commande suivante dans un terminal :
➜ ~ brew install espanso
Une fois installé, en ligne de commande, on peut vérifier que Espanso est lancé :
➜ ~ espanso status
espanso is running
Configuration
On va maintenant pouvoir configurer nos petits snippets 🙂 Pour cela on va aller chercher l’endroit où sont les fichiers configurations avec la commande suivante :
➜ ~ espanso path
Config: /Users/victorprouff/Library/Application Support/espanso
Packages: /Users/victorprouff/Library/Application Support/espanso/match/packages
Runtime: /Users/victorprouff/Library/Caches/espanso
On ouvre le dossier configuration de l’application. J’utilise Visual Studio Code mais peu importe. Note Pad sous Windows marcherait très bien, un simple éditeur de texte suffit. Je tape la commande suivante pour ouvrir le dossier avec VSC : (Faites attention à “" entre Application et support sous mac)
➜ ~ code /Users/victorprouff/Library/Application\ Support/espanso
On obtient l’arborescence suivante :
$espanso/
├─── config/
│ ├── default.yml
├── match/
│ ├── base.yml
│ ├── ma_config.yml
│ └── example.yml
Dans le dossier match
on peut soit modifier la configuration de base base.yml
soit rajouter notre propre fichier de config.
Pour cela il suffit de respecter la syntaxe que nous allons voir ensemble.
Pour commencer, créez un fichier <mon-nom-de-fichier>.yml
dans le dossier match
. Il faut que le fichier commence par matches:
.
|
|
Dans ce cas simple, Espanso va remplacer le trigger !poc
par Prouff Of Concept
.
Le trigger indique la clé de déclenchement. J’ai rajouté un !
qui permet d’éviter que la clé soit un mot que je pourrais utiliser dans une phrase lambda et que le snippet se déclenche. Ce n’est pas obligatoire et on peut mettre le caractère que l’on veut.
En général, j’ai pris l’habitude d’utiliser le trigger !
pour tout ce qui est professionnel, ?
pour tout ce qui est personnel et enfin :
pour les cas plus généraux.
On peut rajouter la gestion de date :
- trigger: ":date"
replace: "{{mydate}}"
vars:
- name: mydate
type: date
params:
format: "%Y-%m-%d"
- trigger: ":now"
replace: "{{mytime}}"
vars:
- name: mytime
type: date
params:
format: "%Hh%M"
Ici, la date est affichée en suivant le format %Y-%m-%d. Vous trouverez ici la liste des formats de date pour que vous puissiez créer celui qui correspond à votre besoin.
Voyons maintenant un cas un peu plus complexe est très puissant. J’utilise quotidiennement plusieurs adresses mails. Comme pour l’exemple vu plus haut, Espanso permet d’un trigger unique de choisir le mail que l’on veut coller.
- trigger: ":mail"
form: |
[[choices]]
form_fields:
choices:
type: choice
values:
- contact-pro@victorprouff.fr
- mail2@victorprouff.fr
- mail3@outlook.fr
Je vous remets le fichier de configuration complet pour l’exemple, n’hésitez pas à essayer, expérimenter et lisez la doc ! Elle est très bien faite et permet d’aller encore plus loin !
matches:
- trigger: "!poc"
replace: "Prouff Of Concept"
- trigger: "!siret"
replace: "157854669356542"
- trigger: "!siren"
replace: "157854669"
- trigger: "!adr"
replace: "15 Av Bollet, 75013 Paris"
- trigger: ":adr"
form: |
[[choices]]
form_fields:
choices:
type: choice
values:
- 15 Av Bollet, 75013 Paris
- 14 Rue de bool, 17015 Tasseau
- 27 allée du gray, 39685 Port-des-Saint
- trigger: "!mail"
replace: "contact-pro@victorprouff.fr"
- trigger: ":mail"
form: |
[[choices]]
form_fields:
choices:
type: choice
values:
- contact-pro@victorprouff.fr
- mail2@victorprouff.fr
- mail3@outlook.fr
- trigger: ":date"
replace: "{{mydate}}"
vars:
- name: mydate
type: date
params:
format: "%Y-%m-%d"
- trigger: ":now"
replace: "{{mytime}}"
vars:
- name: mytime
type: date
params:
format: "%Hh%M"
On peut également séparer en plusieurs fichiers yml pour par exemple partager un fichier commun pour votre équipe ou encore ranger les snippets pro d’un côté eux ceux perso de l’autre. Tous les fichiers .yml du dossier match qui respecte la structure seront interprétés.
Dans le dossier config, on peut spécifier des snippets spécifique pour une application précise. Je n’ai pas encore creusé cette partie-là. J’éditerai cet article pour compléter au fur et à mesure de mes découvertes.
/!\ ATTENTION ! /!\
N’enregistrez pas de donnée sensible comme des mots de passe ou des données bancaires dans ces fichiers ! Il n’y a aucun chiffrement de données et les infos que vous y laisserez pourraient être récupéré par un logiciel malveillant. Espanso est un outil puissant qui permet de gagner du temps et en fluidité mais en aucun cas il s’agit d’un logiciel sécurisé. Utilisez un gestionnaire de mot de passe pour ça 🙂 On en reparle bientôt d’ailleurs 😏