diff --git a/Tutoriel.org b/Tutoriel.org
index ce7a36e082a52bce55f0f16ae21f70db0ea52e34..b7c93666688260fc6f663396632c24199a223b42 100644
--- a/Tutoriel.org
+++ b/Tutoriel.org
@@ -708,13 +708,11 @@ la région, sinon, le curseur est positionné entre les accolades.
 Enfin, si on préfixe les raccourcis précédents par ~C-u~ alors, le
 style est remplacé par le style demandé. Par exemple, si on avait le
 texte suivant
-#+header: :exports code
-#+BEGIN_SRC latex
+#+BEGIN_SRC latex :exports code
   \emph{Un texte}
 #+END_SRC
 si on utilise la commande ~C-u C-c C-f C-b~, il sera transformé en
-#+header: :exports code
-#+BEGIN_SRC latex
+#+BEGIN_SRC latex :exports code
 \textbf{Un texte}
 #+END_SRC
 
@@ -888,6 +886,79 @@ conseillé d'utiliser les raccourcis de navigation classiques :
 | ~C-x left~  | Retourne au /buffer/ précédent |
 | ~C-x right~ | Retourne au /buffer/ suivant   |
 
+*** YASnippet
+Il n'est pas envisageable d'écrire un tutoriel Emacs sans évoquer les
+~snippets~. Commençons donc par rappeler de quoi il s'agit. Les
+~snippets~ (littéralement *fragments* en français) sont des patrons
+(/template/) de code qui évitent de taper toujours et encore des
+motifs de code qui se répètent. Emacs offre depuis très longtemps des
+~snippets~ qui permettent souvent de n'écrire que les zones du code
+faisant sens. ~YASnippet~ s'est imposé comme la version la plus
+aboutie et est maintenant la plus utilisée.
+
+Il faut bien intégrer le fait que les ~snippets~ ne sont pas des
+morceaux de code simplement insérés mais de véritables modèles. Quand
+on les utilise, Emacs invite l'utilisateur à renseigner certains
+champs (en ligne) ce qui permet d'obtenir directement le code
+correspondant au patron sans autre modification.
+
+Notons également que ~YASnippet~ est livré avec une collection
+impressionnante de modèles. Ces patrons sont accessibles selon le
+contexte d'édition : les patrons utiles au ~Python~, à la rédaction
+LaTeX ou au ~C++~, par exemple ne sont proposés que dans leur mode. Au
+vu de leur nombre, il serait impensable d'en faire une quelconque
+liste ici, mais on peut en avoir la liste dans le menu ~YASnippet~ ou
+en tapant la commande ~M-x yas-describe-tables~ qui ouvre un buffer
+contenant tous les ~snippets~ disponibles.
+
+Un autre avantage de ~YASnippet~ est qu'il est très facile d'ajouter
+de nouveaux modèles, mais nous ne décrivons pas la procédure ici (voir
+[[http://joaotavora.github.io/yasnippet]] pour les détails).
+
+| Raccourci | Description         |
+|-----------+---------------------|
+| ~C-RET~   | Développe le modèle |
+Dans cette configuration, on a désactivé le raccourci usuel +~TAB~+,
+qui pouvait avoir des effets inattendus et désagréables, au profit de
+~C RET~. En effet, l'effet principal de ~TAB~ est l'indentation du
+code, mais si le /mini-mode/ de ~YASnippet~ interceptait un
+développement de modèle possible, il prenait la main et remplaçait
+l'indentation demandée par une expansion de modèle. Le nouveau
+raccourci reste simple et n'interfère plus avec les fonctions
+usuelles.
+
+On termine cette courte introduction en donnant un exemple
+d'utilisation en ~C++~. Si on écrit ~cls~ et si on utilise
+immédiatement le raccourci ~C-RET~, le modèle (simple) de *classe* est
+utilisé. On obtient alors
+#+BEGIN_SRC c++ :exports code
+  class Name
+  {
+  public:
+    Name();
+    virtual ~Name();
+  };
+#+END_SRC
+Le curseur est alors positionné sur le premier ~Name~ qui est en fait
+éditable. On est toujours en train d'appliquer le modèle et il suffit
+maintenant (sans autre action) d'entrer le nom de la classe. Par
+exemple, si on écrit ~Tableau~ (une seule fois), on obtient
+#+BEGIN_SRC c++ :exports code
+  class Tableau
+  {
+  public:
+    Tableau();
+    virtual ~Tableau();
+  };
+#+END_SRC
+On n'a modifié qu'un champ pour obtenir ce résultat. ~TAB~ permet de
+passer au champ suivant s'il y en a d'autres et ~S-TAB~ (ou ~backtab~)
+permet de revenir à l'édition d'un champ précédent. Pour obtenir ce
+résultat, on a simplement pressé la suite de touches suivantes.
+#+BEGIN_EXAMPLE
+  c l s C-RET T a b l e a u
+#+END_EXAMPLE
+Cet exemple simple illustre bien l'efficacité de l'approche.
 
 * Pour aller plus loin