diff --git a/.gitignore b/.gitignore
index 9c27e40cb13089b980031bf73ebd46c7cec1f851..3e533597ffdf2976d36e03dd606d6d71965b6a57 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,6 @@
 /recentf
 auto-save-list
 /Readme.el
-/Readme.html
-/Readme.pdf
 *~
 \#*
 *.elc
@@ -14,15 +12,11 @@ auto-save-list
 /elpy/
 /Readme.tex
 /Tutoriel.tex
-/Tutoriel.pdf
-/Tutoriel.html
 /games/tetris-scores
 /url
 /Tutoriel.odt
 /Configuration.el
-/Configuration.pdf
 /Configuration.tex
-/Configuration.html
 /.mc-lists.el
 /tramp
 /Tutoriel.pyg
diff --git a/Configuration.html b/Configuration.html
new file mode 100644
index 0000000000000000000000000000000000000000..bd69266468c6425c85f3a2fce47eba86bb9ba4ec
--- /dev/null
+++ b/Configuration.html
@@ -0,0 +1,2145 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
+<head>
+<!-- 2020-04-17 ven. 19:55 -->
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>Configuration</title>
+<meta name="generator" content="Org mode" />
+<style type="text/css">
+ <!--/*--><![CDATA[/*><!--*/
+  .title  { text-align: center;
+             margin-bottom: .2em; }
+  .subtitle { text-align: center;
+              font-size: medium;
+              font-weight: bold;
+              margin-top:0; }
+  .todo   { font-family: monospace; color: red; }
+  .done   { font-family: monospace; color: green; }
+  .priority { font-family: monospace; color: orange; }
+  .tag    { background-color: #eee; font-family: monospace;
+            padding: 2px; font-size: 80%; font-weight: normal; }
+  .timestamp { color: #bebebe; }
+  .timestamp-kwd { color: #5f9ea0; }
+  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
+  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
+  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
+  .underline { text-decoration: underline; }
+  #postamble p, #preamble p { font-size: 90%; margin: .2em; }
+  p.verse { margin-left: 3%; }
+  pre {
+    border: 1px solid #ccc;
+    box-shadow: 3px 3px 3px #eee;
+    padding: 8pt;
+    font-family: monospace;
+    overflow: auto;
+    margin: 1.2em;
+  }
+  pre.src {
+    position: relative;
+    overflow: visible;
+    padding-top: 1.2em;
+  }
+  pre.src:before {
+    display: none;
+    position: absolute;
+    background-color: white;
+    top: -10px;
+    right: 10px;
+    padding: 3px;
+    border: 1px solid black;
+  }
+  pre.src:hover:before { display: inline;}
+  /* Languages per Org manual */
+  pre.src-asymptote:before { content: 'Asymptote'; }
+  pre.src-awk:before { content: 'Awk'; }
+  pre.src-C:before { content: 'C'; }
+  /* pre.src-C++ doesn't work in CSS */
+  pre.src-clojure:before { content: 'Clojure'; }
+  pre.src-css:before { content: 'CSS'; }
+  pre.src-D:before { content: 'D'; }
+  pre.src-ditaa:before { content: 'ditaa'; }
+  pre.src-dot:before { content: 'Graphviz'; }
+  pre.src-calc:before { content: 'Emacs Calc'; }
+  pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
+  pre.src-fortran:before { content: 'Fortran'; }
+  pre.src-gnuplot:before { content: 'gnuplot'; }
+  pre.src-haskell:before { content: 'Haskell'; }
+  pre.src-hledger:before { content: 'hledger'; }
+  pre.src-java:before { content: 'Java'; }
+  pre.src-js:before { content: 'Javascript'; }
+  pre.src-latex:before { content: 'LaTeX'; }
+  pre.src-ledger:before { content: 'Ledger'; }
+  pre.src-lisp:before { content: 'Lisp'; }
+  pre.src-lilypond:before { content: 'Lilypond'; }
+  pre.src-lua:before { content: 'Lua'; }
+  pre.src-matlab:before { content: 'MATLAB'; }
+  pre.src-mscgen:before { content: 'Mscgen'; }
+  pre.src-ocaml:before { content: 'Objective Caml'; }
+  pre.src-octave:before { content: 'Octave'; }
+  pre.src-org:before { content: 'Org mode'; }
+  pre.src-oz:before { content: 'OZ'; }
+  pre.src-plantuml:before { content: 'Plantuml'; }
+  pre.src-processing:before { content: 'Processing.js'; }
+  pre.src-python:before { content: 'Python'; }
+  pre.src-R:before { content: 'R'; }
+  pre.src-ruby:before { content: 'Ruby'; }
+  pre.src-sass:before { content: 'Sass'; }
+  pre.src-scheme:before { content: 'Scheme'; }
+  pre.src-screen:before { content: 'Gnu Screen'; }
+  pre.src-sed:before { content: 'Sed'; }
+  pre.src-sh:before { content: 'shell'; }
+  pre.src-sql:before { content: 'SQL'; }
+  pre.src-sqlite:before { content: 'SQLite'; }
+  /* additional languages in org.el's org-babel-load-languages alist */
+  pre.src-forth:before { content: 'Forth'; }
+  pre.src-io:before { content: 'IO'; }
+  pre.src-J:before { content: 'J'; }
+  pre.src-makefile:before { content: 'Makefile'; }
+  pre.src-maxima:before { content: 'Maxima'; }
+  pre.src-perl:before { content: 'Perl'; }
+  pre.src-picolisp:before { content: 'Pico Lisp'; }
+  pre.src-scala:before { content: 'Scala'; }
+  pre.src-shell:before { content: 'Shell Script'; }
+  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
+  /* additional language identifiers per "defun org-babel-execute"
+       in ob-*.el */
+  pre.src-cpp:before  { content: 'C++'; }
+  pre.src-abc:before  { content: 'ABC'; }
+  pre.src-coq:before  { content: 'Coq'; }
+  pre.src-groovy:before  { content: 'Groovy'; }
+  /* additional language identifiers from org-babel-shell-names in
+     ob-shell.el: ob-shell is the only babel language using a lambda to put
+     the execution function name together. */
+  pre.src-bash:before  { content: 'bash'; }
+  pre.src-csh:before  { content: 'csh'; }
+  pre.src-ash:before  { content: 'ash'; }
+  pre.src-dash:before  { content: 'dash'; }
+  pre.src-ksh:before  { content: 'ksh'; }
+  pre.src-mksh:before  { content: 'mksh'; }
+  pre.src-posh:before  { content: 'posh'; }
+  /* Additional Emacs modes also supported by the LaTeX listings package */
+  pre.src-ada:before { content: 'Ada'; }
+  pre.src-asm:before { content: 'Assembler'; }
+  pre.src-caml:before { content: 'Caml'; }
+  pre.src-delphi:before { content: 'Delphi'; }
+  pre.src-html:before { content: 'HTML'; }
+  pre.src-idl:before { content: 'IDL'; }
+  pre.src-mercury:before { content: 'Mercury'; }
+  pre.src-metapost:before { content: 'MetaPost'; }
+  pre.src-modula-2:before { content: 'Modula-2'; }
+  pre.src-pascal:before { content: 'Pascal'; }
+  pre.src-ps:before { content: 'PostScript'; }
+  pre.src-prolog:before { content: 'Prolog'; }
+  pre.src-simula:before { content: 'Simula'; }
+  pre.src-tcl:before { content: 'tcl'; }
+  pre.src-tex:before { content: 'TeX'; }
+  pre.src-plain-tex:before { content: 'Plain TeX'; }
+  pre.src-verilog:before { content: 'Verilog'; }
+  pre.src-vhdl:before { content: 'VHDL'; }
+  pre.src-xml:before { content: 'XML'; }
+  pre.src-nxml:before { content: 'XML'; }
+  /* add a generic configuration mode; LaTeX export needs an additional
+     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
+  pre.src-conf:before { content: 'Configuration File'; }
+
+  table { border-collapse:collapse; }
+  caption.t-above { caption-side: top; }
+  caption.t-bottom { caption-side: bottom; }
+  td, th { vertical-align:top;  }
+  th.org-right  { text-align: center;  }
+  th.org-left   { text-align: center;   }
+  th.org-center { text-align: center; }
+  td.org-right  { text-align: right;  }
+  td.org-left   { text-align: left;   }
+  td.org-center { text-align: center; }
+  dt { font-weight: bold; }
+  .footpara { display: inline; }
+  .footdef  { margin-bottom: 1em; }
+  .figure { padding: 1em; }
+  .figure p { text-align: center; }
+  .inlinetask {
+    padding: 10px;
+    border: 2px solid gray;
+    margin: 10px;
+    background: #ffffcc;
+  }
+  #org-div-home-and-up
+   { text-align: right; font-size: 70%; white-space: nowrap; }
+  textarea { overflow-x: auto; }
+  .linenr { font-size: smaller }
+  .code-highlighted { background-color: #ffff00; }
+  .org-info-js_info-navigation { border-style: none; }
+  #org-info-js_console-label
+    { font-size: 10px; font-weight: bold; white-space: nowrap; }
+  .org-info-js_search-highlight
+    { background-color: #ffff00; color: #000000; font-weight: bold; }
+  .org-svg { width: 90%; }
+  /*]]>*/-->
+</style>
+<link rel="stylesheet" type="text/css" href="styles/readtheorg/css/htmlize.css"/>
+<link rel="stylesheet" type="text/css" href="styles/readtheorg/css/readtheorg.css"/>
+<script type="text/javascript" src="styles/lib/js/jquery.min.js"></script>
+<script type="text/javascript" src="styles/lib/js/bootstrap.min.js"></script>
+<script type="text/javascript" src="styles/lib/js/jquery.stickytableheaders.min.js"></script>
+<script type="text/javascript" src="styles/readtheorg/js/readtheorg.js"></script>
+<script type="text/javascript">
+/*
+@licstart  The following is the entire license notice for the
+JavaScript code in this tag.
+
+Copyright (C) 2012-2019 Free Software Foundation, Inc.
+
+The JavaScript code in this tag is free software: you can
+redistribute it and/or modify it under the terms of the GNU
+General Public License (GNU GPL) as published by the Free Software
+Foundation, either version 3 of the License, or (at your option)
+any later version.  The code is distributed WITHOUT ANY WARRANTY;
+without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
+
+As additional permission under GNU GPL version 3 section 7, you
+may distribute non-source (e.g., minimized or compacted) forms of
+that code without the copy of the GNU GPL normally required by
+section 4, provided you include this license notice and a URL
+through which recipients can access the Corresponding Source.
+
+
+@licend  The above is the entire license notice
+for the JavaScript code in this tag.
+*/
+<!--/*--><![CDATA[/*><!--*/
+ function CodeHighlightOn(elem, id)
+ {
+   var target = document.getElementById(id);
+   if(null != target) {
+     elem.cacheClassElem = elem.className;
+     elem.cacheClassTarget = target.className;
+     target.className = "code-highlighted";
+     elem.className   = "code-highlighted";
+   }
+ }
+ function CodeHighlightOff(elem, id)
+ {
+   var target = document.getElementById(id);
+   if(elem.cacheClassElem)
+     elem.className = elem.cacheClassElem;
+   if(elem.cacheClassTarget)
+     target.className = elem.cacheClassTarget;
+ }
+/*]]>*///-->
+</script>
+</head>
+<body>
+<div id="content">
+<h1 class="title">Configuration</h1>
+<div id="table-of-contents">
+<h2>Table des matières</h2>
+<div id="text-table-of-contents">
+<ul>
+<li><a href="#orga047361">1. Choix d'interface</a>
+<ul>
+<li><a href="#org1d83aad">1.1. Pas d'écran de bienvenue</a></li>
+<li><a href="#orgc19ff93">1.2. Déactive des raccourcis</a></li>
+<li><a href="#org2344324">1.3. Augumente la mémoire pour le <i>garbage collector</i> &rArr; meilleures performances</a></li>
+<li><a href="#org7c63296">1.4. Pas de toolbar</a></li>
+<li><a href="#orgc618168">1.5. Réponses par y ou n</a></li>
+<li><a href="#orgea7d37d">1.6. Commentaires</a></li>
+<li><a href="#org871534c">1.7. Désactive l'auto-save</a></li>
+<li><a href="#org676959c">1.8. Auto-fill</a></li>
+<li><a href="#org8c62c01">1.9. Supression des blancs inutiles</a></li>
+<li><a href="#orgb9de3ea">1.10. Numéros de lignes</a></li>
+<li><a href="#orge68038e">1.11. Powerline</a></li>
+<li><a href="#orgbd56db6">1.12. Try</a></li>
+<li><a href="#org812b7a6">1.13. Posframe</a></li>
+<li><a href="#org975dc31">1.14. Which key</a></li>
+<li><a href="#org5a055b6">1.15. Gnuplot</a></li>
+<li><a href="#org957f444">1.16. Org mode</a></li>
+<li><a href="#org6f3b633">1.17. Ace window</a></li>
+<li><a href="#orgb543b71">1.18. Ivy / Counsel</a></li>
+<li><a href="#org89a0b97">1.19. Swiper</a></li>
+<li><a href="#org570c12e">1.20. Avy</a></li>
+<li><a href="#org5ec9709">1.21. Company</a></li>
+<li><a href="#orgf19377e">1.22. C++</a>
+<ul>
+<li><a href="#org5f4530e">1.22.1. On branche Irony à Company</a></li>
+<li><a href="#org6ae5b06">1.22.2. On active Irony pour le C++</a></li>
+<li><a href="#orgc25c3a2">1.22.3. Eldoc / Irony</a></li>
+<li><a href="#org127f0bc">1.22.4. Formatage automatique : <code>clang-format</code></a></li>
+<li><a href="#org8c3c657">1.22.5. Coloration syntaxique (C++ moderne)</a></li>
+</ul>
+</li>
+<li><a href="#org67a0b90">1.23. Thèmes</a></li>
+<li><a href="#org60df07f">1.24. Modeline</a></li>
+<li><a href="#org5a01027">1.25. Parenthèses arc-en-ciel</a></li>
+<li><a href="#org6bb5c23">1.26. FlyCheck</a></li>
+<li><a href="#org774569c">1.27. Python</a></li>
+<li><a href="#org846067d">1.28. YASnippet</a></li>
+<li><a href="#org17b8e19">1.29. Divers paquets</a>
+<ul>
+<li><a href="#org16633b9">1.29.1. Highlight line</a></li>
+<li><a href="#org6365242">1.29.2. Beacon</a></li>
+<li><a href="#orgfd695dc">1.29.3. hungry-delete</a></li>
+<li><a href="#org4eb4412">1.29.4. Expand-region</a></li>
+<li><a href="#org7782288">1.29.5. Meilleure gestion du <code>kill-ring</code></a></li>
+<li><a href="#org23e9b5d">1.29.6. Gestion de la restauration des buffers</a></li>
+</ul>
+</li>
+<li><a href="#org4858766">1.30. iedit</a></li>
+<li><a href="#orge1c5906">1.31. Narrow/widen dwim</a></li>
+<li><a href="#org8e0ad25">1.32. Web Mode</a></li>
+<li><a href="#org6dfdf29">1.33. Emmet mode</a></li>
+<li><a href="#org79c2033">1.34. Dired-dwim</a></li>
+<li><a href="#org95b7b6d">1.35. LaTeX</a></li>
+<li><a href="#org0b2a336">1.36. Gestion de projets</a></li>
+<li><a href="#org2d3162f">1.37. Org-mode (langages suportés)</a></li>
+<li><a href="#org85b75a7">1.38. Parenthèses</a></li>
+<li><a href="#org8a5d8a8">1.39. Taille de la police</a></li>
+<li><a href="#orga3e28d8">1.40. Hydra</a></li>
+<li><a href="#org1e49d2e">1.41. Modes git</a></li>
+<li><a href="#orgcfd101e">1.42. FlySpell</a></li>
+<li><a href="#orgd098def">1.43. C++</a></li>
+<li><a href="#org23a07a8">1.44. Compilation en C++</a></li>
+<li><a href="#org9a73218">1.45. CMake</a></li>
+<li><a href="#orgc15572d">1.46. Markdown</a></li>
+<li><a href="#org22c7ee2">1.47. Dumb jump</a></li>
+<li><a href="#org74fda95">1.48. Origami</a></li>
+<li><a href="#orga762c61">1.49. IBuffer</a></li>
+<li><a href="#org9313050">1.50. WGrep</a></li>
+<li><a href="#orgfc226d0">1.51. PDF tools</a></li>
+<li><a href="#orgf508c87">1.52. AutoYASnippet</a></li>
+<li><a href="#org612705e">1.53. Divers</a></li>
+<li><a href="#orgb43c622">1.54. Keyfreq</a></li>
+<li><a href="#orgc951d86">1.55. Dictionnaire et césures</a></li>
+</ul>
+</li>
+<li><a href="#org7122c3e">2. Annexes</a>
+<ul>
+<li><a href="#org0d577a4">2.1. Génération de toute la documentation</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+
+<div id="outline-container-orga047361" class="outline-2">
+<h2 id="orga047361"><span class="section-number-2">1</span> Choix d'interface</h2>
+<div class="outline-text-2" id="text-1">
+</div>
+<div id="outline-container-org1d83aad" class="outline-3">
+<h3 id="org1d83aad"><span class="section-number-3">1.1</span> Pas d'écran de bienvenue</h3>
+<div class="outline-text-3" id="text-1-1">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> inhibit-startup-message t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgc19ff93" class="outline-3">
+<h3 id="orgc19ff93"><span class="section-number-3">1.2</span> Déactive des raccourcis</h3>
+<div class="outline-text-3" id="text-1-2">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>global-set-key <span class="org-rainbow-delimiters-depth-2">(</span>kbd <span class="org-string">"C-x C-z"</span><span class="org-rainbow-delimiters-depth-2">)</span> nil<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org2344324" class="outline-3">
+<h3 id="org2344324"><span class="section-number-3">1.3</span> Augumente la mémoire pour le <i>garbage collector</i> &rArr; meilleures performances</h3>
+<div class="outline-text-3" id="text-1-3">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> gc-cons-threshold 64000000<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'after-init-hook
+          #'<span class="org-rainbow-delimiters-depth-2">(</span>lambda <span class="org-rainbow-delimiters-depth-3">()</span>
+              <span class="org-comment-delimiter">;; </span><span class="org-comment">restore after startup</span>
+              <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">setq</span> gc-cons-threshold 800000<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org7c63296" class="outline-3">
+<h3 id="org7c63296"><span class="section-number-3">1.4</span> Pas de toolbar</h3>
+<div class="outline-text-3" id="text-1-4">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>tool-bar-mode -1<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgc618168" class="outline-3">
+<h3 id="orgc618168"><span class="section-number-3">1.5</span> Réponses par y ou n</h3>
+<div class="outline-text-3" id="text-1-5">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>fset 'yes-or-no-p 'y-or-n-p<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgea7d37d" class="outline-3">
+<h3 id="orgea7d37d"><span class="section-number-3">1.6</span> Commentaires</h3>
+<div class="outline-text-3" id="text-1-6">
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-c ;</code></td>
+<td class="org-left">Commente ou décommente une région</td>
+</tr>
+</tbody>
+</table>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>global-set-key <span class="org-rainbow-delimiters-depth-2">(</span>kbd <span class="org-string">"C-c ;"</span><span class="org-rainbow-delimiters-depth-2">)</span> 'comment-or-uncomment-region<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org871534c" class="outline-3">
+<h3 id="org871534c"><span class="section-number-3">1.7</span> Désactive l'auto-save</h3>
+<div class="outline-text-3" id="text-1-7">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> auto-save-default nil<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org676959c" class="outline-3">
+<h3 id="org676959c"><span class="section-number-3">1.8</span> Auto-fill</h3>
+<div class="outline-text-3" id="text-1-8">
+<p>
+Utilise le mode mineur <code>auto-fill</code> (des retours à la ligne sont
+automatiquement ajoutés quand les lignes sont trop longues).
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>turn-on-auto-fill<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+<p>
+&#x2026; sauf quand on code
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'prog-mode-hook <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-3">()</span> <span class="org-rainbow-delimiters-depth-3">(</span>auto-fill-mode -1<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org8c62c01" class="outline-3">
+<h3 id="org8c62c01"><span class="section-number-3">1.9</span> Supression des blancs inutiles</h3>
+<div class="outline-text-3" id="text-1-9">
+<p>
+On retire les blancs qui traînent en fin de ligne à la sauvegarde d'un
+<i>buffer</i>
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'before-save-hook
+          <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-3">()</span>
+            <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-4">(</span>not <span class="org-rainbow-delimiters-depth-5">(</span>derived-mode-p 'ein:notebook-multilang-mode<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+              <span class="org-rainbow-delimiters-depth-4">(</span>delete-trailing-whitespace<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgb9de3ea" class="outline-3">
+<h3 id="orgb9de3ea"><span class="section-number-3">1.10</span> Numéros de lignes</h3>
+<div class="outline-text-3" id="text-1-10">
+<p>
+Affiche les numéros des lignes en marge de gauche.
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-2">(</span>version&lt;= <span class="org-string">"26.0.50"</span> emacs-version<span class="org-rainbow-delimiters-depth-2">)</span>
+    <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">progn</span>
+      <span class="org-rainbow-delimiters-depth-3">(</span>global-display-line-numbers-mode 'visual<span class="org-rainbow-delimiters-depth-3">)</span>
+      <span class="org-rainbow-delimiters-depth-3">(</span>add-hook 'pdf-view-mode-hook <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-5">()</span> <span class="org-rainbow-delimiters-depth-5">(</span>display-line-numbers-mode -1<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orge68038e" class="outline-3">
+<h3 id="orge68038e"><span class="section-number-3">1.11</span> Powerline</h3>
+<div class="outline-text-3" id="text-1-11">
+<p>
+Un bel affichage pour la barre d'état (<i>modeline</i>)
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">powerline</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span> <span class="org-rainbow-delimiters-depth-2">(</span>powerline-default-theme<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgbd56db6" class="outline-3">
+<h3 id="orgbd56db6"><span class="section-number-3">1.12</span> Try</h3>
+<div class="outline-text-3" id="text-1-12">
+<p>
+Permet d'essayer des paquets (sans les installer de manère permanente)
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">try</span>
+  <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org812b7a6" class="outline-3">
+<h3 id="org812b7a6"><span class="section-number-3">1.13</span> Posframe</h3>
+<div class="outline-text-3" id="text-1-13">
+<p>
+Affiche des boites de dialogue
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">posframe</span>
+  <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org975dc31" class="outline-3">
+<h3 id="org975dc31"><span class="section-number-3">1.14</span> Which key</h3>
+<div class="outline-text-3" id="text-1-14">
+<p>
+Aide en ligne pour les raccourcis (<i>quelle touche ?</i>)
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">which-key</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>which-key-mode<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org5a055b6" class="outline-3">
+<h3 id="org5a055b6"><span class="section-number-3">1.15</span> Gnuplot</h3>
+<div class="outline-text-3" id="text-1-15">
+<p>
+Ajout du mode <code>gnuplot</code>, en particulier pour les interactions avec
+<code>Org-mode</code>
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">gnuplot</span>
+  <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org957f444" class="outline-3">
+<h3 id="org957f444"><span class="section-number-3">1.16</span> Org mode</h3>
+<div class="outline-text-3" id="text-1-16">
+<p>
+<i>Org bullets</i> pour un plus bel affichage des sections
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">org</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:pin</span> org<span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span>setenv <span class="org-string">"BROWSER"</span> <span class="org-string">"firefox"</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">org-bullets</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'org-mode-hook <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-4">()</span> <span class="org-rainbow-delimiters-depth-4">(</span>org-bullets-mode 1<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'org-babel-after-execute-hook
+          '<span class="org-rainbow-delimiters-depth-3">(</span>lambda <span class="org-rainbow-delimiters-depth-4">()</span> <span class="org-rainbow-delimiters-depth-4">(</span>org-redisplay-inline-images<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-to-list 'org-latex-packages-alist '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">""</span> <span class="org-string">"listingsutf8"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-to-list 'org-latex-packages-alist '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">""</span> <span class="org-string">"minted"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span>custom-set-variables
+ '<span class="org-rainbow-delimiters-depth-2">(</span>org-default-notes-file <span class="org-rainbow-delimiters-depth-3">(</span>concat org-directory <span class="org-string">"/notes.org"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ '<span class="org-rainbow-delimiters-depth-2">(</span>org-export-html-postamble nil<span class="org-rainbow-delimiters-depth-2">)</span>
+ '<span class="org-rainbow-delimiters-depth-2">(</span>org-hide-leading-stars t<span class="org-rainbow-delimiters-depth-2">)</span>
+ '<span class="org-rainbow-delimiters-depth-2">(</span>org-startup-folded <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">quote</span> overview<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+ '<span class="org-rainbow-delimiters-depth-2">(</span>org-startup-indented t<span class="org-rainbow-delimiters-depth-2">)</span>
+ '<span class="org-rainbow-delimiters-depth-2">(</span>org-confirm-babel-evaluate nil<span class="org-rainbow-delimiters-depth-2">)</span>
+ '<span class="org-rainbow-delimiters-depth-2">(</span>org-src-fontify-natively t<span class="org-rainbow-delimiters-depth-2">)</span>
+ '<span class="org-rainbow-delimiters-depth-2">(</span>org-html-htmlize-output-type 'css<span class="org-rainbow-delimiters-depth-2">)</span>
+ '<span class="org-rainbow-delimiters-depth-2">(</span>org-latex-listings 'minted<span class="org-rainbow-delimiters-depth-2">)</span>
+ '<span class="org-rainbow-delimiters-depth-2">(</span>org-hide-emphasis-markers t<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-startup-with-inline-images t<span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-latex-listings 'minted
+      org-latex-packages-alist '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">""</span> <span class="org-string">"minted"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+      org-latex-pdf-process
+      '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"</span>
+        <span class="org-string">"pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-file-apps
+      <span class="org-rainbow-delimiters-depth-2">(</span>append '<span class="org-rainbow-delimiters-depth-3">(</span>
+                <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"\\.x?html?\\'"</span> . <span class="org-string">"/usr/bin/firefox %s"</span><span class="org-rainbow-delimiters-depth-4">)</span>
+                <span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-warning">org-file-apps </span><span class="org-warning"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-warning"><span class="org-rainbow-delimiters-depth-1">)</span></span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span>global-set-key <span class="org-string">"\C-ca"</span> 'org-agenda<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-agenda-start-on-weekday nil<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-agenda-custom-commands
+      '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"c"</span> <span class="org-string">"Simple agenda view"</span>
+         <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-rainbow-delimiters-depth-5">(</span>agenda <span class="org-string">""</span><span class="org-rainbow-delimiters-depth-5">)</span>
+          <span class="org-rainbow-delimiters-depth-5">(</span>alltodo <span class="org-string">""</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span>global-set-key <span class="org-rainbow-delimiters-depth-2">(</span>kbd <span class="org-string">"C-c c"</span><span class="org-rainbow-delimiters-depth-2">)</span> 'org-capture<span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">make-capture-frame</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+  <span class="org-doc">"Create a new frame and run org-capture."</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">interactive</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>make-frame '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span>name . <span class="org-string">"capture"</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>select-frame-by-name <span class="org-string">"capture"</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>delete-other-windows<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>noflet <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span>switch-to-buffer-other-window <span class="org-rainbow-delimiters-depth-5">(</span>buf<span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-rainbow-delimiters-depth-5">(</span>switch-to-buffer buf<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+          <span class="org-rainbow-delimiters-depth-3">(</span>org-capture<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span>define-key org-mode-map <span class="org-rainbow-delimiters-depth-2">(</span>kbd <span class="org-string">"C-c &gt;"</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-3">()</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">interactive</span> <span class="org-rainbow-delimiters-depth-4">(</span>org-time-stamp-inactive<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">htmlize</span> <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-ditaa-jar-path <span class="org-string">"/usr/share/ditaa/ditaa.jar"</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org6f3b633" class="outline-3">
+<h3 id="org6f3b633"><span class="section-number-3">1.17</span> Ace window</h3>
+<div class="outline-text-3" id="text-1-17">
+<p>
+Permet de changer facilement de fenêtre. S'il y a plus de deux <i>buffers</i>
+leur numéros sont affichés et il suffit de taper le numéro de la
+fenêtre choisie pour s'y rendre.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x o</code></td>
+<td class="org-left">Met le curseur dans une autre fenêtre.</td>
+</tr>
+</tbody>
+</table>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">ace-window</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:init</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">progn</span>
+    <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">setq</span> aw-scope 'global<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-comment-delimiter">;; </span><span class="org-comment">was frame</span>
+    <span class="org-rainbow-delimiters-depth-3">(</span>global-set-key <span class="org-rainbow-delimiters-depth-4">(</span>kbd <span class="org-string">"C-x O"</span><span class="org-rainbow-delimiters-depth-4">)</span> 'other-frame<span class="org-rainbow-delimiters-depth-3">)</span>
+    <span class="org-rainbow-delimiters-depth-3">(</span>global-set-key <span class="org-rainbow-delimiters-depth-4">[</span>remap other-window<span class="org-rainbow-delimiters-depth-4">]</span> 'ace-window<span class="org-rainbow-delimiters-depth-3">)</span>
+    <span class="org-rainbow-delimiters-depth-3">(</span>custom-set-faces
+     '<span class="org-rainbow-delimiters-depth-4">(</span>aw-leading-char-face
+       <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-rainbow-delimiters-depth-6">(</span>t <span class="org-rainbow-delimiters-depth-7">(</span><span class="org-builtin">:inherit</span> ace-jump-face-foreground <span class="org-builtin">:height</span> 3.0<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+    <span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgb543b71" class="outline-3">
+<h3 id="orgb543b71"><span class="section-number-3">1.18</span> Ivy / Counsel</h3>
+<div class="outline-text-3" id="text-1-18">
+<p>
+Interface de complétion
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">counsel</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:bind</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"M-y"</span> . counsel-yank-pop<span class="org-rainbow-delimiters-depth-3">)</span>
+   <span class="org-builtin">:map</span> ivy-minibuffer-map
+   <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"M-y"</span> . ivy-next-line<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">ivy</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:demand</span> t
+  <span class="org-builtin">:diminish</span> <span class="org-rainbow-delimiters-depth-2">(</span>ivy-mode<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-builtin">:bind</span> <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"C-x b"</span> . ivy-switch-buffer<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>ivy-mode 1<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> ivy-use-virtual-buffers t<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> ivy-count-format <span class="org-string">"%d/%d "</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> ivy-display-style 'fancy<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org89a0b97" class="outline-3">
+<h3 id="org89a0b97"><span class="section-number-3">1.19</span> Swiper</h3>
+<div class="outline-text-3" id="text-1-19">
+<p>
+Améliore la recherche incrémentale. Les raccourcis sont les raccourcis
+classiques. Deux différences notables.
+</p>
+<ul class="org-ul">
+<li><code>SPC</code> joue le rôle de joker : <code>r rc</code> correspond au mot <i>recherche</i> par
+exemple</li>
+<li>Si on souhaite créer un nouveau fichier avec <code>C-x C-f</code> dont le nom est
+une sous-chaîne d'un fichier existant, il ne faut pas utiliser <code>RET</code>
+pour valider, mais <code>C-M-j</code>. Utiliser <code>RET</code> valide la recherche, <code>C-M-j</code>
+valide la chaîne saisie. Il est également possible de sélectionner
+la zone de saisie (avec les flèches) et de simplement valider la
+chaîne avec <code>RET</code>.</li>
+</ul>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-s</code></td>
+<td class="org-left">Recherche incrémentale vers le bas</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-r</code></td>
+<td class="org-left">Recherche incrémentale vers le haut</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-x</code></td>
+<td class="org-left">Recherche incrémentale d'une commande</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x C-f</code></td>
+<td class="org-left">Recherche incrémentale ou création d'un fichier</td>
+</tr>
+</tbody>
+</table>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">swiper</span>
+<span class="org-builtin">:ensure</span> t
+<span class="org-builtin">:bind</span> <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"C-s"</span> . swiper-isearch<span class="org-rainbow-delimiters-depth-3">)</span>
+       <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"C-r"</span> . swiper-isearch<span class="org-rainbow-delimiters-depth-3">)</span>
+       <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"C-c C-r"</span> . ivy-resume<span class="org-rainbow-delimiters-depth-3">)</span>
+       <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"M-x"</span> . counsel-M-x<span class="org-rainbow-delimiters-depth-3">)</span>
+       <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"C-x C-f"</span> . counsel-find-file<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+<span class="org-builtin">:config</span>
+<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">progn</span>
+  <span class="org-rainbow-delimiters-depth-3">(</span>ivy-mode 1<span class="org-rainbow-delimiters-depth-3">)</span>
+  <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">setq</span> ivy-use-virtual-buffers t<span class="org-rainbow-delimiters-depth-3">)</span>
+  <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">setq</span> ivy-display-style 'fancy<span class="org-rainbow-delimiters-depth-3">)</span>
+  <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">setq</span> ivy-use-selectable-prompt t<span class="org-rainbow-delimiters-depth-3">)</span>
+  <span class="org-rainbow-delimiters-depth-3">(</span>define-key read-expression-map <span class="org-rainbow-delimiters-depth-4">(</span>kbd <span class="org-string">"C-r"</span><span class="org-rainbow-delimiters-depth-4">)</span> 'counsel-expression-history<span class="org-rainbow-delimiters-depth-3">)</span>
+  <span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org570c12e" class="outline-3">
+<h3 id="org570c12e"><span class="section-number-3">1.20</span> Avy</h3>
+<div class="outline-text-3" id="text-1-20">
+<p>
+Saute très rapidement vers la zone de texte contenant une lettre.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>M-s</code></td>
+<td class="org-left">Demande une lettre du mot recherché</td>
+</tr>
+</tbody>
+</table>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">avy</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:bind</span> <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"M-s"</span> . avy-goto-word-1<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org5ec9709" class="outline-3">
+<h3 id="org5ec9709"><span class="section-number-3">1.21</span> Company</h3>
+<div class="outline-text-3" id="text-1-21">
+<p>
+Boites de dialogue pour la complétion
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">company</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> company-idle-delay 0<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> company-minimum-prefix-length 3<span class="org-rainbow-delimiters-depth-2">)</span>
+
+  <span class="org-rainbow-delimiters-depth-2">(</span>global-company-mode t<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">my/python-mode-hook</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-to-list 'company-backends 'company-jedi<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'python-mode-hook 'my/python-mode-hook<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">company-jedi</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'python-mode-hook 'jedi:setup<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">my/python-mode-hook</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-to-list 'company-backends 'company-jedi<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'python-mode-hook 'my/python-mode-hook<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgf19377e" class="outline-3">
+<h3 id="orgf19377e"><span class="section-number-3">1.22</span> C++</h3>
+<div class="outline-text-3" id="text-1-22">
+<p>
+Transforme Emacs en un véritable IDE en utilisant <code>Irony</code>
+</p>
+</div>
+<div id="outline-container-org5f4530e" class="outline-4">
+<h4 id="org5f4530e"><span class="section-number-4">1.22.1</span> On branche Irony à Company</h4>
+<div class="outline-text-4" id="text-1-22-1">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">company-irony</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-to-list 'company-backends 'company-irony<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org6ae5b06" class="outline-4">
+<h4 id="org6ae5b06"><span class="section-number-4">1.22.2</span> On active Irony pour le C++</h4>
+<div class="outline-text-4" id="text-1-22-2">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">irony</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'c++-mode-hook 'irony-mode<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'c-mode-hook 'irony-mode<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgc25c3a2" class="outline-4">
+<h4 id="orgc25c3a2"><span class="section-number-4">1.22.3</span> Eldoc / Irony</h4>
+<div class="outline-text-4" id="text-1-22-3">
+<p>
+Affiche la documentation des objets/fonctions dans le minibuffer
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">irony-eldoc</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'irony-mode-hook #'irony-eldoc<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org127f0bc" class="outline-4">
+<h4 id="org127f0bc"><span class="section-number-4">1.22.4</span> Formatage automatique : <code>clang-format</code></h4>
+<div class="outline-text-4" id="text-1-22-4">
+<p>
+Création d'un raccourci spécial pour formater une zone du code.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-c C-f</code></td>
+<td class="org-left">Indente la région comme définie par clang-format</td>
+</tr>
+</tbody>
+</table>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">clang-format</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:bind</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"C-c C-f"</span> . clang-format-region<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+
+<p>
+Remplace l'indentation classique d'Emacs par <code>clang-format</code> en <code>C~/~C++</code>
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>&lt;TAB&gt;</code></td>
+<td class="org-left">Indente la région comme définie par <code>clang-format</code></td>
+</tr>
+</tbody>
+</table>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">clang-format-c-mode-common-hook</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>fset 'c-indent-region 'clang-format-region<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>define-key c-mode-base-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"&lt;tab&gt;"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'clang-format-region<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'c-mode-common-hook 'clang-format-c-mode-common-hook<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+
+<p>
+Force le formatage du fichier quand il est sauvegardé
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">clang-format-buffer-on-save</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+  <span class="org-doc">"Add auto-save hook for clang-format-buffer-smart."</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'before-save-hook 'clang-format-buffer nil t<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'c-mode-common-hook 'clang-format-buffer-on-save<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org8c3c657" class="outline-4">
+<h4 id="org8c3c657"><span class="section-number-4">1.22.5</span> Coloration syntaxique (C++ moderne)</h4>
+<div class="outline-text-4" id="text-1-22-5">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">modern-cpp-font-lock</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:init</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">eval-when-compile</span>
+    <span class="org-comment-delimiter">;; </span><span class="org-comment">Silence missing function warnings</span>
+    <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">declare-function</span> modern-c++-font-lock-global-mode
+                      <span class="org-string">"modern-cpp-font-lock.el"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-builtin">:config</span> <span class="org-rainbow-delimiters-depth-2">(</span>modern-c++-font-lock-global-mode t<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org67a0b90" class="outline-3">
+<h3 id="org67a0b90"><span class="section-number-3">1.23</span> Thèmes</h3>
+<div class="outline-text-3" id="text-1-23">
+<p>
+Chargement de quelques themes
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">cloud-theme</span> <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">zenburn-theme</span> <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">sourcerer-theme</span> <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">monokai-theme</span> <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">gruvbox-theme</span> <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">bubbleberry-theme</span> <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">solarized-theme</span> <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org60df07f" class="outline-3">
+<h3 id="org60df07f"><span class="section-number-3">1.24</span> Modeline</h3>
+<div class="outline-text-3" id="text-1-24">
+<p>
+Augmente la taille de la police
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defvar</span> <span class="org-variable-name">my-font-size</span> 140<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+
+<p>
+Taille de la Modeline
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>set-face-attribute 'mode-line nil  <span class="org-builtin">:height</span> my-font-size<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+
+<p>
+Taille du titre
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>set-face-attribute 'header-line nil  <span class="org-builtin">:height</span> my-font-size<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+
+<p>
+Taille des attributs
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>set-face-attribute 'default nil <span class="org-builtin">:height</span> my-font-size<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+
+<p>
+Taille de la fenêtre et position
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> default-frame-alist
+      '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span>top . 0<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-rainbow-delimiters-depth-3">(</span>left . 0<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-comment-delimiter">;; </span><span class="org-comment">position</span>
+        <span class="org-rainbow-delimiters-depth-3">(</span>width . 110<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-rainbow-delimiters-depth-3">(</span>height . 90<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-comment-delimiter">;; </span><span class="org-comment">size</span>
+        <span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org5a01027" class="outline-3">
+<h3 id="org5a01027"><span class="section-number-3">1.25</span> Parenthèses arc-en-ciel</h3>
+<div class="outline-text-3" id="text-1-25">
+<p>
+Améliore le visuel des parenthèses
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">rainbow-delimiters</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:init</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">eval-when-compile</span>
+    <span class="org-comment-delimiter">;; </span><span class="org-comment">Silence missing function warnings</span>
+    <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">declare-function</span> rainbow-delimiters-mode <span class="org-string">"rainbow-delimiters.el"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'prog-mode-hook #'rainbow-delimiters-mode<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org6bb5c23" class="outline-3">
+<h3 id="org6bb5c23"><span class="section-number-3">1.26</span> FlyCheck</h3>
+<div class="outline-text-3" id="text-1-26">
+<p>
+On branche <code>FlyCheck</code> à <code>Irony</code> pour une analyse des erreurs à la volée.
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">flycheck-irony</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>eval-after-load 'flycheck
+    '<span class="org-rainbow-delimiters-depth-3">(</span>add-hook 'flycheck-mode-hook #'flycheck-irony-setup<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+
+<p>
+On charge <code>FlyCheck</code>
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">flycheck</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:init</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>global-flycheck-mode t<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+
+<p>
+Active <code>FlyCheck</code> globalement
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'after-init-hook #'global-flycheck-mode<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+<div id="outline-container-org774569c" class="outline-3">
+<h3 id="org774569c"><span class="section-number-3">1.27</span> Python</h3>
+<div class="outline-text-3" id="text-1-27">
+<p>
+Attention pour que la configuration fonctionne, il faut installer
+<code>virtualenv</code>. Pour les systèmes <code>Debian</code>
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">apt install virtualenv
+</pre>
+</div>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> py-python-command <span class="org-string">"python3"</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> python-shell-interpreter <span class="org-string">"python3"</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">elpy</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:custom</span> <span class="org-rainbow-delimiters-depth-2">(</span>elpy-rpc-backend <span class="org-string">"jedi"</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>elpy-enable<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">virtualenvwrapper</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>venv-initialize-interactive-shells<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>venv-initialize-eshell<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org846067d" class="outline-3">
+<h3 id="org846067d"><span class="section-number-3">1.28</span> YASnippet</h3>
+<div class="outline-text-3" id="text-1-28">
+<p>
+Le système de templates pour Emacs
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">yasnippet</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:init</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>yas-global-mode 1<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">unbind-key</span> <span class="org-string">"&lt;tab&gt;"</span> yas-minor-mode-map<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-builtin">:bind</span> <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"C-&lt;return&gt;"</span> . yas-expand<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">yasnippet-snippets</span>
+  <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org17b8e19" class="outline-3">
+<h3 id="org17b8e19"><span class="section-number-3">1.29</span> Divers paquets</h3>
+<div class="outline-text-3" id="text-1-29">
+</div>
+<div id="outline-container-org16633b9" class="outline-4">
+<h4 id="org16633b9"><span class="section-number-4">1.29.1</span> Highlight line</h4>
+<div class="outline-text-4" id="text-1-29-1">
+<p>
+Mise en valeur de la ligne courante
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>global-hl-line-mode t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org6365242" class="outline-4">
+<h4 id="org6365242"><span class="section-number-4">1.29.2</span> Beacon</h4>
+<div class="outline-text-4" id="text-1-29-2">
+<p>
+Flash de la ligne aux changements de page ou de buffer
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">beacon</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>beacon-mode 1<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgfd695dc" class="outline-4">
+<h4 id="orgfd695dc"><span class="section-number-4">1.29.3</span> hungry-delete</h4>
+<div class="outline-text-4" id="text-1-29-3">
+<p>
+Suppression de tous les blancs quand appuie sur backspace ou delete
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">hungry-delete</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>global-hungry-delete-mode<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org4eb4412" class="outline-4">
+<h4 id="org4eb4412"><span class="section-number-4">1.29.4</span> Expand-region</h4>
+<div class="outline-text-4" id="text-1-29-4">
+<p>
+Sélectionne une zone de manière incrémentale. mot, phrase, paragraphe,
+etc de manière intelligente.
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">expand-region</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>global-set-key <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-="</span><span class="org-rainbow-delimiters-depth-3">)</span> 'er/expand-region<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org7782288" class="outline-4">
+<h4 id="org7782288"><span class="section-number-4">1.29.5</span> Meilleure gestion du <code>kill-ring</code></h4>
+<div class="outline-text-4" id="text-1-29-5">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> save-interprogram-paste-before-kill t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org23e9b5d" class="outline-4">
+<h4 id="org23e9b5d"><span class="section-number-4">1.29.6</span> Gestion de la restauration des buffers</h4>
+<div class="outline-text-4" id="text-1-29-6">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>global-auto-revert-mode 1<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> auto-revert-verbose nil<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> revert-without-query <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">quote</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">".*.pdf"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>global-set-key <span class="org-rainbow-delimiters-depth-2">(</span>kbd <span class="org-string">"&lt;f5&gt;"</span><span class="org-rainbow-delimiters-depth-2">)</span> 'revert-buffer<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org4858766" class="outline-3">
+<h3 id="org4858766"><span class="section-number-3">1.30</span> iedit</h3>
+<div class="outline-text-3" id="text-1-30">
+<p>
+Modifie les copies d'une zone séléctionnée simultanément
+</p>
+
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-h C-;</code></td>
+<td class="org-left">démarrer les modifications</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-ESC ESC</code></td>
+<td class="org-left">sortir du mode</td>
+</tr>
+</tbody>
+</table>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">iedit</span>
+  <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orge1c5906" class="outline-3">
+<h3 id="orge1c5906"><span class="section-number-3">1.31</span> Narrow/widen dwim</h3>
+<div class="outline-text-3" id="text-1-31">
+<p>
+Réduit/agrandit une zone d'édition de manière intelligente
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">narrow-or-widen-dwim</span> <span class="org-rainbow-delimiters-depth-2">(</span>p<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-doc">"If the buffer is narrowed, it widens. Otherwise, it narrows intelligently.</span>
+<span class="org-doc">Intelligently means: region, org-src-block, org-subtree, or defun,</span>
+<span class="org-doc">whichever applies first.</span>
+<span class="org-doc">Narrowing to org-src-block actually calls `</span><span class="org-doc"><span class="org-constant">org-edit-src-code</span></span><span class="org-doc">'.</span>
+
+<span class="org-doc">With prefix P, don't widen, just narrow even if buffer is already</span>
+<span class="org-doc">narrowed."</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">interactive</span> <span class="org-string">"P"</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">declare</span> <span class="org-rainbow-delimiters-depth-3">(</span>interactive-only<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">cond</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">and</span> <span class="org-rainbow-delimiters-depth-5">(</span>buffer-narrowed-p<span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-rainbow-delimiters-depth-5">(</span>not p<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-rainbow-delimiters-depth-4">(</span>widen<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+        <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span>region-active-p<span class="org-rainbow-delimiters-depth-4">)</span>
+         <span class="org-rainbow-delimiters-depth-4">(</span>narrow-to-region <span class="org-rainbow-delimiters-depth-5">(</span>region-beginning<span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-rainbow-delimiters-depth-5">(</span>region-end<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+        <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span>derived-mode-p 'org-mode<span class="org-rainbow-delimiters-depth-4">)</span>
+         <span class="org-comment-delimiter">;; </span><span class="org-comment">`</span><span class="org-comment"><span class="org-constant">org-edit-src-code</span></span><span class="org-comment">' is not a real narrowing command.</span>
+         <span class="org-comment-delimiter">;; </span><span class="org-comment">Remove this first conditional if you don't want it.</span>
+         <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">cond</span> <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">ignore-errors</span> <span class="org-rainbow-delimiters-depth-7">(</span>org-edit-src-code<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span>
+                <span class="org-rainbow-delimiters-depth-6">(</span>delete-other-windows<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+               <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-rainbow-delimiters-depth-6">(</span>org-at-block-p<span class="org-rainbow-delimiters-depth-6">)</span>
+                <span class="org-rainbow-delimiters-depth-6">(</span>org-narrow-to-block<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+               <span class="org-rainbow-delimiters-depth-5">(</span>t <span class="org-rainbow-delimiters-depth-6">(</span>org-narrow-to-subtree<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+        <span class="org-rainbow-delimiters-depth-3">(</span>t <span class="org-rainbow-delimiters-depth-4">(</span>narrow-to-defun<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+
+<p>
+Remplace la fonction Emacs standard par <code>dwim</code>
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>define-key ctl-x-map <span class="org-string">"n"</span> #'narrow-or-widen-dwim<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'LaTeX-mode-hook
+          <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-3">()</span>
+            <span class="org-rainbow-delimiters-depth-3">(</span>define-key LaTeX-mode-map <span class="org-string">"\C-xn"</span>
+              nil<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org8e0ad25" class="outline-3">
+<h3 id="org8e0ad25"><span class="section-number-3">1.32</span> Web Mode</h3>
+<div class="outline-text-3" id="text-1-32">
+<p>
+Mode avancé pour l'édition de pages <code>HTML</code>, <code>Css</code>,&#x2026;
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">web-mode</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-to-list 'auto-mode-alist '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"\\.html?\\'"</span> . web-mode<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-to-list 'auto-mode-alist '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"\\.vue?\\'"</span> . web-mode<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> web-mode-engines-alist
+        '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"django"</span>    . <span class="org-string">"\\.html\\'"</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> web-mode-ac-sources-alist
+        '<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"css"</span> . <span class="org-rainbow-delimiters-depth-5">(</span>ac-source-css-property<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+          <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"vue"</span> . <span class="org-rainbow-delimiters-depth-5">(</span>ac-source-words-in-buffer ac-source-abbrev<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+          <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"html"</span> . <span class="org-rainbow-delimiters-depth-5">(</span>ac-source-words-in-buffer ac-source-abbrev<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> web-mode-enable-auto-closing t<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> web-mode-enable-auto-quoting t<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-comment-delimiter">; </span><span class="org-comment">this fixes the quote problem I mentioned</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org6dfdf29" class="outline-3">
+<h3 id="org6dfdf29"><span class="section-number-3">1.33</span> Emmet mode</h3>
+<div class="outline-text-3" id="text-1-33">
+<p>
+Ensemble de fonctions permettant l'édition rapide de <i>markup languages</i>
+(<code>HTML</code>, <code>SGML</code>,&#x2026;)
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">emmet-mode</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-comment-delimiter">;; </span><span class="org-comment">Auto-start on any markup modes</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'sgml-mode-hook 'emmet-mode<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-comment-delimiter">;; </span><span class="org-comment">Auto-start on any markup modes</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'web-mode-hook  'emmet-mode<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-comment-delimiter">;; </span><span class="org-comment">enable Emmet's css abbreviation</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'css-mode-hook  'emmet-mode<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org79c2033" class="outline-3">
+<h3 id="org79c2033"><span class="section-number-3">1.34</span> Dired-dwim</h3>
+<div class="outline-text-3" id="text-1-34">
+<p>
+Permet d'utiliser reduire/agrandir les affichages de répertoires
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> dired-dwim-target t<span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">dired-narrow</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">bind-key</span> <span class="org-string">"C-c C-n"</span> #'dired-narrow<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">bind-key</span> <span class="org-string">"C-c C-f"</span> #'dired-narrow-fuzzy<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">bind-key</span> <span class="org-string">"C-x C-N"</span> #'dired-narrow-regexp<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">dired-subtree</span> <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:after</span> dired
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">bind-key</span> <span class="org-string">"&lt;tab&gt;"</span> #'dired-subtree-toggle dired-mode-map<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">bind-key</span> <span class="org-string">"&lt;backtab&gt;"</span> #'dired-subtree-cycle dired-mode-map<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org95b7b6d" class="outline-3">
+<h3 id="org95b7b6d"><span class="section-number-3">1.35</span> LaTeX</h3>
+<div class="outline-text-3" id="text-1-35">
+<p>
+Configuration LaTeX basique.
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">tex</span>
+  <span class="org-builtin">:ensure</span> auctex
+  <span class="org-builtin">:init</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'LaTeX-mode-hook 'turn-on-reftex<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> TeX-parse-self t<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'reftex-mode-hook
+            '<span class="org-rainbow-delimiters-depth-3">(</span>lambda <span class="org-rainbow-delimiters-depth-4">()</span>
+               <span class="org-rainbow-delimiters-depth-4">(</span>define-key reftex-mode-map <span class="org-rainbow-delimiters-depth-5">(</span>kbd <span class="org-string">"C-c ["</span><span class="org-rainbow-delimiters-depth-5">)</span>
+                 <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-6">()</span>
+                   <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">interactive</span><span class="org-rainbow-delimiters-depth-6">)</span>
+                   <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">let</span> <span class="org-rainbow-delimiters-depth-7">(</span><span class="org-rainbow-delimiters-depth-8">(</span>ivy-count-format <span class="org-string">"'=' for all | %d/%d "</span><span class="org-rainbow-delimiters-depth-8">)</span><span class="org-rainbow-delimiters-depth-7">)</span>
+                     <span class="org-rainbow-delimiters-depth-7">(</span>reftex-citation<span class="org-rainbow-delimiters-depth-7">)</span>
+                     <span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org0b2a336" class="outline-3">
+<h3 id="org0b2a336"><span class="section-number-3">1.36</span> Gestion de projets</h3>
+<div class="outline-text-3" id="text-1-36">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">projectile</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:bind</span> <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"C-c p"</span> . projectile-command-map<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>projectile-mode<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> projectile-completion-system 'ivy<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org2d3162f" class="outline-3">
+<h3 id="org2d3162f"><span class="section-number-3">1.37</span> Org-mode (langages suportés)</h3>
+<div class="outline-text-3" id="text-1-37">
+<p>
+Charge les langages disponnibles pour org-mode
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>org-babel-do-load-languages
+ 'org-babel-load-languages
+ '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span>python . t<span class="org-rainbow-delimiters-depth-3">)</span>
+   <span class="org-rainbow-delimiters-depth-3">(</span>emacs-lisp . t<span class="org-rainbow-delimiters-depth-3">)</span>
+   <span class="org-rainbow-delimiters-depth-3">(</span>shell . t<span class="org-rainbow-delimiters-depth-3">)</span>
+   <span class="org-rainbow-delimiters-depth-3">(</span>C . t<span class="org-rainbow-delimiters-depth-3">)</span>
+   <span class="org-rainbow-delimiters-depth-3">(</span>gnuplot . t<span class="org-rainbow-delimiters-depth-3">)</span>
+   <span class="org-rainbow-delimiters-depth-3">(</span>js . t<span class="org-rainbow-delimiters-depth-3">)</span>
+   <span class="org-rainbow-delimiters-depth-3">(</span>ditaa . t<span class="org-rainbow-delimiters-depth-3">)</span>
+   <span class="org-rainbow-delimiters-depth-3">(</span>dot . t<span class="org-rainbow-delimiters-depth-3">)</span>
+   <span class="org-rainbow-delimiters-depth-3">(</span>org . t<span class="org-rainbow-delimiters-depth-3">)</span>
+   <span class="org-rainbow-delimiters-depth-3">(</span>latex . t <span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> org-babel-python-command <span class="org-string">"python3"</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'org-babel-after-execute-hook
+          'org-redisplay-inline-images<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org85b75a7" class="outline-3">
+<h3 id="org85b75a7"><span class="section-number-3">1.38</span> Parenthèses</h3>
+<div class="outline-text-3" id="text-1-38">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">smartparens</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:hook</span> <span class="org-rainbow-delimiters-depth-2">(</span>prog-mode . smartparens-mode<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-builtin">:custom</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>sp-escape-quotes-after-insert nil<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">require</span> '<span class="org-constant">smartparens-config</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span>show-paren-mode t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> show-paren-style 'mixed<span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span>set-face-background 'show-paren-match <span class="org-rainbow-delimiters-depth-2">(</span>face-background 'default<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>set-face-foreground 'show-paren-match <span class="org-string">"#def"</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>set-face-attribute 'show-paren-match nil <span class="org-builtin">:weight</span> 'extra-bold<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org8a5d8a8" class="outline-3">
+<h3 id="org8a5d8a8"><span class="section-number-3">1.39</span> Taille de la police</h3>
+<div class="outline-text-3" id="text-1-39">
+<p>
+Change la taille de la police dynamiquement (temporaire)
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-M-=</code></td>
+<td class="org-left">Augmente la taille de la police</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-M--</code></td>
+<td class="org-left">Réduit la taille de la police</td>
+</tr>
+</tbody>
+</table>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">default-text-scale</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>global-set-key <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-M-="</span><span class="org-rainbow-delimiters-depth-3">)</span> 'default-text-scale-increase<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>global-set-key <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-M--"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'default-text-scale-decrease<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orga3e28d8" class="outline-3">
+<h3 id="orga3e28d8"><span class="section-number-3">1.40</span> Hydra</h3>
+<div class="outline-text-3" id="text-1-40">
+<p>
+Outil de simplification des raccourcis. Un <i>popup</i> contextuel apparaît.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x t</code></td>
+<td class="org-left">Active désactive certains utilitaires</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c t</code></td>
+<td class="org-left">Gestion du timer</td>
+</tr>
+</tbody>
+</table>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">hydra</span>
+  <span class="org-builtin">:ensure</span> hydra
+  <span class="org-builtin">:init</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>global-set-key
+   <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-x t"</span><span class="org-rainbow-delimiters-depth-3">)</span>
+   <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">defhydra</span> toggle <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-builtin">:color</span> blue <span class="org-builtin">:hint</span> nil<span class="org-rainbow-delimiters-depth-4">)</span>
+     <span class="org-doc">"</span>
+<span class="org-doc">                      Toggle</span>
+<span class="org-doc">--------------------------------------------------</span>
+<span class="org-doc"> [_a_] Abbrev    [_s_] FlySpell    [_c_] FlyCheck</span>
+<span class="org-doc"> [_d_] Debug     [_f_] Auto-Fill   [_t_] Truncate lines</span>
+<span class="org-doc"> [_l_] Line num. [_w_] Whitespace  [_q_] Quit"</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"a"</span> abbrev-mode<span class="org-rainbow-delimiters-depth-4">)</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"s"</span> flyspell-mode<span class="org-rainbow-delimiters-depth-4">)</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"c"</span> flycheck-mode<span class="org-rainbow-delimiters-depth-4">)</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"d"</span> toggle-debug-on-error<span class="org-rainbow-delimiters-depth-4">)</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"f"</span> auto-fill-mode<span class="org-rainbow-delimiters-depth-4">)</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"t"</span> toggle-truncate-lines<span class="org-rainbow-delimiters-depth-4">)</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"l"</span> display-line-numbers-mode<span class="org-rainbow-delimiters-depth-4">)</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"w"</span> whitespace-mode<span class="org-rainbow-delimiters-depth-4">)</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"q"</span> nil<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>global-set-key
+   <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-c t"</span><span class="org-rainbow-delimiters-depth-3">)</span>
+   <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">defhydra</span> hydra-global-org <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-builtin">:color</span> blue<span class="org-rainbow-delimiters-depth-4">)</span>
+     <span class="org-doc">"Org"</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"t"</span> org-timer-start <span class="org-string">"Start Timer"</span><span class="org-rainbow-delimiters-depth-4">)</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"s"</span> org-timer-stop <span class="org-string">"Stop Timer"</span><span class="org-rainbow-delimiters-depth-4">)</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"r"</span> org-timer-set-timer <span class="org-string">"Set Timer"</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-comment-delimiter">; </span><span class="org-comment">This one requires you be in an orgmode doc, as it sets the timer for the header</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"p"</span> org-timer <span class="org-string">"Print Timer"</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-comment-delimiter">; </span><span class="org-comment">output timer value to buffer</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"w"</span> <span class="org-rainbow-delimiters-depth-5">(</span>org-clock-in '<span class="org-rainbow-delimiters-depth-6">(</span>4<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-string">"Clock-In"</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-comment-delimiter">; </span><span class="org-comment">used with (org-clock-persistence-insinuate) (setq org-clock-persist t)</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"o"</span> org-clock-out <span class="org-string">"Clock-Out"</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-comment-delimiter">; </span><span class="org-comment">you might also want (setq org-log-note-clock-out t)</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"j"</span> org-clock-goto <span class="org-string">"Clock Goto"</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-comment-delimiter">; </span><span class="org-comment">global visit the clocked task</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"c"</span> org-capture <span class="org-string">"Capture"</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-comment-delimiter">; </span><span class="org-comment">Don't forget to define the captures you want http://orgmode.org/manual/Capture.html</span>
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"l"</span> <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-keyword">or</span> <span class="org-rainbow-delimiters-depth-5">)</span>rg-capture-goto-last-stored <span class="org-string">"Last Capture"</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+   <span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org1e49d2e" class="outline-3">
+<h3 id="org1e49d2e"><span class="section-number-3">1.41</span> Modes git</h3>
+<div class="outline-text-3" id="text-1-41">
+<p>
+Le sublime <code>Magit</code>.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x g</code></td>
+<td class="org-left">Démarre <b>magit</b> (<code>M-x magit-status</code>)</td>
+</tr>
+</tbody>
+</table>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">magit</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:init</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">progn</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">bind-key</span> <span class="org-string">"C-x g"</span> 'magit-status<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+
+<p>
+Affiche l'état <code>git</code> dans la marge?
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> magit-status-margin
+      '<span class="org-rainbow-delimiters-depth-2">(</span>nil <span class="org-string">"%Y-%m-%d %H:%M "</span> magit-log-margin-width t 18<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+
+<p>
+Utilise <code>git-gutter</code> avec <code>hydra</code>. Permet de voir rapidement les
+modifications, de les valider (<code>git add -p</code>) ou de les annuler (<code>git
+checkout -p</code>)
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>M-g M-g</code></td>
+<td class="org-left">Lance le menu <code>Hydra</code> pour l'interaction <code>git-gutter</code></td>
+</tr>
+</tbody>
+</table>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">git-gutter</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:init</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>global-git-gutter-mode +1<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'magit-post-refresh-hook
+            #'git-gutter:update-all-windows<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span>global-set-key <span class="org-rainbow-delimiters-depth-2">(</span>kbd <span class="org-string">"M-g M-g"</span><span class="org-rainbow-delimiters-depth-2">)</span> 'hydra-git-gutter/body<span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">git-timemachine</span>
+  <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defhydra</span> hydra-git-gutter <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-builtin">:body-pre</span> <span class="org-rainbow-delimiters-depth-3">(</span>git-gutter-mode 1<span class="org-rainbow-delimiters-depth-3">)</span>
+                                      <span class="org-builtin">:hint</span> nil<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-doc">"</span>
+<span class="org-doc">Git gutter:</span>
+<span class="org-doc">  _j_: next hunk        _s_tage hunk     _q_uit</span>
+<span class="org-doc">  _k_: previous hunk    _r_evert hunk    _Q_uit and deactivate git-gutter</span>
+<span class="org-doc">  ^ ^                   _p_opup hunk</span>
+<span class="org-doc">  _h_: first hunk</span>
+<span class="org-doc">  _l_: last hunk        set start _R_evision</span>
+<span class="org-doc">"</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"j"</span> git-gutter:next-hunk<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"k"</span> git-gutter:previous-hunk<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"h"</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">progn</span> <span class="org-rainbow-delimiters-depth-4">(</span>goto-char <span class="org-rainbow-delimiters-depth-5">(</span>point-min<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+              <span class="org-rainbow-delimiters-depth-4">(</span>git-gutter:next-hunk 1<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"l"</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">progn</span> <span class="org-rainbow-delimiters-depth-4">(</span>goto-char <span class="org-rainbow-delimiters-depth-5">(</span>point-min<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+              <span class="org-rainbow-delimiters-depth-4">(</span>git-gutter:previous-hunk 1<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"s"</span> git-gutter:stage-hunk<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"r"</span> git-gutter:revert-hunk<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"p"</span> git-gutter:popup-hunk<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"R"</span> git-gutter:set-start-revision<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"q"</span> nil <span class="org-builtin">:color</span> blue<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"Q"</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">progn</span> <span class="org-rainbow-delimiters-depth-4">(</span>git-gutter-mode -1<span class="org-rainbow-delimiters-depth-4">)</span>
+              <span class="org-comment-delimiter">;; </span><span class="org-comment">git-gutter-fringe doesn't seem to</span>
+              <span class="org-comment-delimiter">;; </span><span class="org-comment">clear the markup right away</span>
+              <span class="org-rainbow-delimiters-depth-4">(</span>sit-for 0.1<span class="org-rainbow-delimiters-depth-4">)</span>
+              <span class="org-rainbow-delimiters-depth-4">(</span>git-gutter-mode<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+   <span class="org-builtin">:color</span> blue<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgcfd101e" class="outline-3">
+<h3 id="orgcfd101e"><span class="section-number-3">1.42</span> FlySpell</h3>
+<div class="outline-text-3" id="text-1-42">
+<p>
+Correcteur orthographique à la volée.
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'LaTeX-mode-hook 'turn-on-flyspell<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'c++-mode-hook 'turn-on-flyspell<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'c-mode-hook 'turn-on-flyspell<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'python-mode-hook 'turn-on-flyspell<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'LaTeX-mode-hook 'turn-on-flyspell<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'org-mode-hook 'turn-on-flyspell<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'org-mode-hook 'turn-on-auto-fill<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'mu4e-compose-mode-hook 'turn-on-flyspell<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'mu4e-compose-mode-hook 'turn-on-auto-fill<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> flyspell-issue-message-flag nil<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgd098def" class="outline-3">
+<h3 id="orgd098def"><span class="section-number-3">1.43</span> C++</h3>
+<div class="outline-text-3" id="text-1-43">
+<p>
+Activation des <code>ggtags</code>
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">ggtags</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'c-mode-common-hook
+            <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-4">()</span>
+              <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-5">(</span>derived-mode-p 'c-mode 'c++-mode 'java-mode<span class="org-rainbow-delimiters-depth-5">)</span>
+                <span class="org-rainbow-delimiters-depth-5">(</span>ggtags-mode 1<span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org23a07a8" class="outline-3">
+<h3 id="org23a07a8"><span class="section-number-3">1.44</span> Compilation en C++</h3>
+<div class="outline-text-3" id="text-1-44">
+<p>
+Définit <code>C-c C-c</code> comme raccourci pour lancer la compilation et
+configure le <i>buffer</i> de compilation pour qu'il suive la compilation
+jusqu'à la première erreur.
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">compilation-c-mode-common-hook</span> <span class="org-rainbow-delimiters-depth-2">()</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>define-key c-mode-base-map <span class="org-rainbow-delimiters-depth-3">(</span>kbd <span class="org-string">"C-c C-c"</span><span class="org-rainbow-delimiters-depth-3">)</span> 'compile<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> compilation-scroll-output 'first-error<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'c-mode-common-hook 'compilation-c-mode-common-hook<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org9a73218" class="outline-3">
+<h3 id="org9a73218"><span class="section-number-3">1.45</span> CMake</h3>
+<div class="outline-text-3" id="text-1-45">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">cmake-mode</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:mode</span> <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">"CMakeLists.txt"</span> <span class="org-string">".cmake"</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-builtin">:hook</span> <span class="org-rainbow-delimiters-depth-2">(</span>cmake-mode . <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-4">()</span>
+                        <span class="org-rainbow-delimiters-depth-4">(</span>add-to-list 'company-backends 'company-cmake<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">use-package</span> <span class="org-constant">cmake-font-lock</span>
+    <span class="org-builtin">:ensure</span> t
+    <span class="org-builtin">:defer</span> t
+    <span class="org-builtin">:commands</span> <span class="org-rainbow-delimiters-depth-3">(</span>cmake-font-lock-activate<span class="org-rainbow-delimiters-depth-3">)</span>
+    <span class="org-builtin">:hook</span> <span class="org-rainbow-delimiters-depth-3">(</span>cmake-mode . <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-5">()</span>
+                          <span class="org-rainbow-delimiters-depth-5">(</span>cmake-font-lock-activate<span class="org-rainbow-delimiters-depth-5">)</span>
+                          <span class="org-rainbow-delimiters-depth-5">(</span>font-lock-add-keywords
+                           nil '<span class="org-rainbow-delimiters-depth-6">(</span><span class="org-rainbow-delimiters-depth-7">(</span><span class="org-string">"\\&lt;</span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">(</span></span><span class="org-string">FIXME</span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">|</span></span><span class="org-string">TODO</span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">|</span></span><span class="org-string">BUG</span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">|</span></span><span class="org-string">DONE</span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">)</span></span><span class="org-string">"</span>
+                                  1 font-lock-warning-face t<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgc15572d" class="outline-3">
+<h3 id="orgc15572d"><span class="section-number-3">1.46</span> Markdown</h3>
+<div class="outline-text-3" id="text-1-46">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">markdown-mode</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:mode</span> <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">".md"</span> <span class="org-string">".markdown"</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org22c7ee2" class="outline-3">
+<h3 id="org22c7ee2"><span class="section-number-3">1.47</span> Dumb jump</h3>
+<div class="outline-text-3" id="text-1-47">
+<p>
+Permet de se déplacer <b>très</b> rapidement dans un texte ou de retrouver
+une définition.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>M-g j</code></td>
+<td class="org-left">Saute à la définition de l'objet sous le curseur</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-g o</code></td>
+<td class="org-left">Saute à la définition de l'objet sous le curseur dans une autre fenêtre</td>
+</tr>
+</tbody>
+</table>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">dumb-jump</span>
+  <span class="org-builtin">:bind</span> <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"M-g o"</span> . dumb-jump-go-other-window<span class="org-rainbow-delimiters-depth-3">)</span>
+         <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"M-g j"</span> . dumb-jump-go<span class="org-rainbow-delimiters-depth-3">)</span>
+         <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"M-g x"</span> . dumb-jump-go-prefer-external<span class="org-rainbow-delimiters-depth-3">)</span>
+         <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-string">"M-g z"</span> . dumb-jump-go-prefer-external-other-window<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-builtin">:init</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>dumb-jump-mode<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org74fda95" class="outline-3">
+<h3 id="org74fda95"><span class="section-number-3">1.48</span> Origami</h3>
+<div class="outline-text-3" id="text-1-48">
+<p>
+Mode permettant le pliage (<i>folding</i>) de régions
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">origami</span>
+  <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orga762c61" class="outline-3">
+<h3 id="orga762c61"><span class="section-number-3">1.49</span> IBuffer</h3>
+<div class="outline-text-3" id="text-1-49">
+<p>
+Un meilleur gestionnaire de <i>buffers</i>.
+</p>
+
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x C-b</code></td>
+<td class="org-left">Ouvre le gestionnaire de <i>buffers</i></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x b</code></td>
+<td class="org-left">Change de <i>buffer</i></td>
+</tr>
+</tbody>
+</table>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>global-set-key <span class="org-rainbow-delimiters-depth-2">(</span>kbd <span class="org-string">"C-x C-b"</span><span class="org-rainbow-delimiters-depth-2">)</span> 'ibuffer<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> ibuffer-saved-filter-groups
+      <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">quote</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">"default"</span>
+               <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">"dired"</span> <span class="org-rainbow-delimiters-depth-6">(</span>mode . dired-mode<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+               <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">"org"</span> <span class="org-rainbow-delimiters-depth-6">(</span>name . <span class="org-string">"^.*org$"</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+               <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">"magit"</span> <span class="org-rainbow-delimiters-depth-6">(</span>mode . magit-mode<span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+               <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">"IRC"</span> <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">or</span> <span class="org-rainbow-delimiters-depth-7">(</span>mode . circe-channel-mode<span class="org-rainbow-delimiters-depth-7">)</span>
+                          <span class="org-rainbow-delimiters-depth-7">(</span>mode . circe-server-mode<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+               <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">"web"</span> <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">or</span> <span class="org-rainbow-delimiters-depth-7">(</span>mode . web-mode<span class="org-rainbow-delimiters-depth-7">)</span> <span class="org-rainbow-delimiters-depth-7">(</span>mode . js2-mode<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+               <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">"shell"</span> <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">or</span> <span class="org-rainbow-delimiters-depth-7">(</span>mode . eshell-mode<span class="org-rainbow-delimiters-depth-7">)</span> <span class="org-rainbow-delimiters-depth-7">(</span>mode . shell-mode<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+               <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">"mu4e"</span> <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">or</span> <span class="org-rainbow-delimiters-depth-7">(</span>mode . mu4e-compose-mode<span class="org-rainbow-delimiters-depth-7">)</span>
+                           <span class="org-rainbow-delimiters-depth-7">(</span>name . <span class="org-string">"\\*mu4e\\*"</span><span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+               <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">"programming"</span> <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">or</span> <span class="org-rainbow-delimiters-depth-7">(</span>mode . clojure-mode<span class="org-rainbow-delimiters-depth-7">)</span>
+                                  <span class="org-rainbow-delimiters-depth-7">(</span>mode . clojurescript-mode<span class="org-rainbow-delimiters-depth-7">)</span>
+                                  <span class="org-rainbow-delimiters-depth-7">(</span>mode . python-mode<span class="org-rainbow-delimiters-depth-7">)</span>
+                                  <span class="org-rainbow-delimiters-depth-7">(</span>mode . c++-mode<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+               <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">"emacs"</span> <span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">or</span> <span class="org-rainbow-delimiters-depth-7">(</span>name . <span class="org-string">"^\\*scratch\\*$"</span><span class="org-rainbow-delimiters-depth-7">)</span>
+                            <span class="org-rainbow-delimiters-depth-7">(</span>name . <span class="org-string">"^\\*Messages\\*$"</span><span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span>
+               <span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'ibuffer-mode-hook
+          <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-3">()</span>
+            <span class="org-rainbow-delimiters-depth-3">(</span>ibuffer-auto-mode 1<span class="org-rainbow-delimiters-depth-3">)</span>
+            <span class="org-rainbow-delimiters-depth-3">(</span>ibuffer-switch-to-saved-filter-groups <span class="org-string">"default"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-comment-delimiter">;; </span><span class="org-comment">Don't show filter groups if there are no buffers in that group</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> ibuffer-show-empty-filter-groups nil<span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-comment-delimiter">;; </span><span class="org-comment">Don't ask for confirmation to delete marked buffers</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> ibuffer-expert t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org9313050" class="outline-3">
+<h3 id="org9313050"><span class="section-number-3">1.50</span> WGrep</h3>
+<div class="outline-text-3" id="text-1-50">
+<p>
+Permet de modifier le résultat d'un <code>grep</code> (donc simultanément dans
+plusieurs fichiers par exemple).
+</p>
+
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-c C-p</code></td>
+<td class="org-left">passe en mode écriture dans le buffer résultat de <b>grep</b></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-e</code></td>
+<td class="org-left">sauve les modifications</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x C-q</code></td>
+<td class="org-left">quitte le mode</td>
+</tr>
+</tbody>
+</table>
+<p>
+voir <a href="https://github.com/emacsmirror/emacswiki.org/blob/master/wgrep.el">wgrep</a> pour plus d'infos.
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">wgrep</span>
+  <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">wgrep-ag</span>
+  <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">require</span> '<span class="org-constant">wgrep-ag</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgfc226d0" class="outline-3">
+<h3 id="orgfc226d0"><span class="section-number-3">1.51</span> PDF tools</h3>
+<div class="outline-text-3" id="text-1-51">
+<p>
+Outils d'édition de <code>PDF</code> dans Emacs
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">pdf-tools</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">when</span> <span class="org-rainbow-delimiters-depth-3">(</span>eq system-type 'gnu/linux<span class="org-rainbow-delimiters-depth-3">)</span>
+    <span class="org-rainbow-delimiters-depth-3">(</span>pdf-tools-install<span class="org-rainbow-delimiters-depth-3">)</span>
+    <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">setq</span> TeX-view-program-selection '<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-rainbow-delimiters-depth-5">(</span>output-pdf <span class="org-string">"pdf-tools"</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+    <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-keyword">setq</span> TeX-view-program-list '<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">"pdf-tools"</span> <span class="org-string">"TeX-pdf-tools-sync-view"</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-builtin">:init</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'LaTeX-mode-hook
+            '<span class="org-rainbow-delimiters-depth-3">(</span>lambda <span class="org-rainbow-delimiters-depth-4">()</span> <span class="org-rainbow-delimiters-depth-4">(</span>local-set-key <span class="org-rainbow-delimiters-depth-5">(</span>kbd <span class="org-string">"C-c C-g"</span><span class="org-rainbow-delimiters-depth-5">)</span>
+                                       'pdf-sync-forward-search<span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">org-pdftools</span>
+  <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgf508c87" class="outline-3">
+<h3 id="orgf508c87"><span class="section-number-3">1.52</span> AutoYASnippet</h3>
+<div class="outline-text-3" id="text-1-52">
+<p>
+Outil de création rapide de snipets.
+Voir la documentation en ligne <a href="https://github.com/abo-abo/auto-yasnippet">https://github.com/abo-abo/auto-yasnippet</a>
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">auto-yasnippet</span>
+  <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org612705e" class="outline-3">
+<h3 id="org612705e"><span class="section-number-3">1.53</span> Divers</h3>
+<div class="outline-text-3" id="text-1-53">
+<p>
+Quelques réglages utilitaires
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> browse-url-browser-function 'browse-url-generic
+      browse-url-generic-program <span class="org-string">"firefox"</span><span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> auto-window-vscroll nil<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span>blink-cursor-mode t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> default-frame-alist
+      '<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span>cursor-color . <span class="org-string">"DarkGrey"</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgb43c622" class="outline-3">
+<h3 id="orgb43c622"><span class="section-number-3">1.54</span> Keyfreq</h3>
+<div class="outline-text-3" id="text-1-54">
+<p>
+Enregistre la fréquence d'utilisation de commandes. Pour obtenir les
+statistiques, utiliser la commande <code>M-x keyfreq-show</code>
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">keyfreq</span>
+  <span class="org-builtin">:ensure</span> t
+  <span class="org-builtin">:config</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">require</span> '<span class="org-constant">keyfreq</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>keyfreq-mode 1<span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span>keyfreq-autosave-mode 1<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgc951d86" class="outline-3">
+<h3 id="orgc951d86"><span class="section-number-3">1.55</span> Dictionnaire et césures</h3>
+<div class="outline-text-3" id="text-1-55">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">dictionary</span>
+  <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">synosaurus</span>
+  <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org7122c3e" class="outline-2">
+<h2 id="org7122c3e"><span class="section-number-2">2</span> Annexes</h2>
+<div class="outline-text-2" id="text-2">
+</div>
+<div id="outline-container-org0d577a4" class="outline-3">
+<h3 id="org0d577a4"><span class="section-number-3">2.1</span> Génération de toute la documentation</h3>
+<div class="outline-text-3" id="text-2-1">
+<p>
+On génère la documentation <code>HTML</code> et <code>PDF</code> de cette configuration à partir
+de tous les fichier <code>.org</code> du répertoire de configuration Emacs.
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">defun</span> <span class="org-function-name">config-org-to-export</span><span class="org-rainbow-delimiters-depth-2">()</span>
+  <span class="org-doc">"Regenerate all .emacs.d docs"</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">interactive</span><span class="org-rainbow-delimiters-depth-2">)</span>
+  <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">let</span> <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span>files <span class="org-rainbow-delimiters-depth-5">(</span>file-expand-wildcards <span class="org-string">"~/.emacs.d/*.org"</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span>
+    <span class="org-rainbow-delimiters-depth-3">(</span>mapc
+     <span class="org-rainbow-delimiters-depth-4">(</span><span class="org-keyword">lambda</span> <span class="org-rainbow-delimiters-depth-5">(</span>f<span class="org-rainbow-delimiters-depth-5">)</span> .
+       <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-rainbow-delimiters-depth-6">(</span><span class="org-keyword">with-current-buffer</span>
+            <span class="org-rainbow-delimiters-depth-7">(</span>find-file-noselect f<span class="org-rainbow-delimiters-depth-7">)</span>
+          <span class="org-rainbow-delimiters-depth-7">(</span>org-latex-export-to-pdf<span class="org-rainbow-delimiters-depth-7">)</span>
+          <span class="org-rainbow-delimiters-depth-7">(</span>org-html-export-to-html<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">)</span><span class="org-rainbow-delimiters-depth-5">)</span><span class="org-rainbow-delimiters-depth-4">)</span>
+     files<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>
+</pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div id="postamble" class="status">
+<p class="date">Created: 2020-04-17 ven. 19:55</p>
+<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
+</div>
+</body>
+</html>
diff --git a/Configuration.pdf b/Configuration.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..2be159d02cd6ca385cfce80f706f5cb50adc4628
Binary files /dev/null and b/Configuration.pdf differ
diff --git a/Installation.html b/Installation.html
new file mode 100644
index 0000000000000000000000000000000000000000..49155b294b06506c2ba3038d79879cfe7fd635d2
--- /dev/null
+++ b/Installation.html
@@ -0,0 +1,631 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
+<head>
+<!-- 2020-04-17 ven. 19:55 -->
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>Installation</title>
+<meta name="generator" content="Org mode" />
+<style type="text/css">
+ <!--/*--><![CDATA[/*><!--*/
+  .title  { text-align: center;
+             margin-bottom: .2em; }
+  .subtitle { text-align: center;
+              font-size: medium;
+              font-weight: bold;
+              margin-top:0; }
+  .todo   { font-family: monospace; color: red; }
+  .done   { font-family: monospace; color: green; }
+  .priority { font-family: monospace; color: orange; }
+  .tag    { background-color: #eee; font-family: monospace;
+            padding: 2px; font-size: 80%; font-weight: normal; }
+  .timestamp { color: #bebebe; }
+  .timestamp-kwd { color: #5f9ea0; }
+  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
+  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
+  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
+  .underline { text-decoration: underline; }
+  #postamble p, #preamble p { font-size: 90%; margin: .2em; }
+  p.verse { margin-left: 3%; }
+  pre {
+    border: 1px solid #ccc;
+    box-shadow: 3px 3px 3px #eee;
+    padding: 8pt;
+    font-family: monospace;
+    overflow: auto;
+    margin: 1.2em;
+  }
+  pre.src {
+    position: relative;
+    overflow: visible;
+    padding-top: 1.2em;
+  }
+  pre.src:before {
+    display: none;
+    position: absolute;
+    background-color: white;
+    top: -10px;
+    right: 10px;
+    padding: 3px;
+    border: 1px solid black;
+  }
+  pre.src:hover:before { display: inline;}
+  /* Languages per Org manual */
+  pre.src-asymptote:before { content: 'Asymptote'; }
+  pre.src-awk:before { content: 'Awk'; }
+  pre.src-C:before { content: 'C'; }
+  /* pre.src-C++ doesn't work in CSS */
+  pre.src-clojure:before { content: 'Clojure'; }
+  pre.src-css:before { content: 'CSS'; }
+  pre.src-D:before { content: 'D'; }
+  pre.src-ditaa:before { content: 'ditaa'; }
+  pre.src-dot:before { content: 'Graphviz'; }
+  pre.src-calc:before { content: 'Emacs Calc'; }
+  pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
+  pre.src-fortran:before { content: 'Fortran'; }
+  pre.src-gnuplot:before { content: 'gnuplot'; }
+  pre.src-haskell:before { content: 'Haskell'; }
+  pre.src-hledger:before { content: 'hledger'; }
+  pre.src-java:before { content: 'Java'; }
+  pre.src-js:before { content: 'Javascript'; }
+  pre.src-latex:before { content: 'LaTeX'; }
+  pre.src-ledger:before { content: 'Ledger'; }
+  pre.src-lisp:before { content: 'Lisp'; }
+  pre.src-lilypond:before { content: 'Lilypond'; }
+  pre.src-lua:before { content: 'Lua'; }
+  pre.src-matlab:before { content: 'MATLAB'; }
+  pre.src-mscgen:before { content: 'Mscgen'; }
+  pre.src-ocaml:before { content: 'Objective Caml'; }
+  pre.src-octave:before { content: 'Octave'; }
+  pre.src-org:before { content: 'Org mode'; }
+  pre.src-oz:before { content: 'OZ'; }
+  pre.src-plantuml:before { content: 'Plantuml'; }
+  pre.src-processing:before { content: 'Processing.js'; }
+  pre.src-python:before { content: 'Python'; }
+  pre.src-R:before { content: 'R'; }
+  pre.src-ruby:before { content: 'Ruby'; }
+  pre.src-sass:before { content: 'Sass'; }
+  pre.src-scheme:before { content: 'Scheme'; }
+  pre.src-screen:before { content: 'Gnu Screen'; }
+  pre.src-sed:before { content: 'Sed'; }
+  pre.src-sh:before { content: 'shell'; }
+  pre.src-sql:before { content: 'SQL'; }
+  pre.src-sqlite:before { content: 'SQLite'; }
+  /* additional languages in org.el's org-babel-load-languages alist */
+  pre.src-forth:before { content: 'Forth'; }
+  pre.src-io:before { content: 'IO'; }
+  pre.src-J:before { content: 'J'; }
+  pre.src-makefile:before { content: 'Makefile'; }
+  pre.src-maxima:before { content: 'Maxima'; }
+  pre.src-perl:before { content: 'Perl'; }
+  pre.src-picolisp:before { content: 'Pico Lisp'; }
+  pre.src-scala:before { content: 'Scala'; }
+  pre.src-shell:before { content: 'Shell Script'; }
+  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
+  /* additional language identifiers per "defun org-babel-execute"
+       in ob-*.el */
+  pre.src-cpp:before  { content: 'C++'; }
+  pre.src-abc:before  { content: 'ABC'; }
+  pre.src-coq:before  { content: 'Coq'; }
+  pre.src-groovy:before  { content: 'Groovy'; }
+  /* additional language identifiers from org-babel-shell-names in
+     ob-shell.el: ob-shell is the only babel language using a lambda to put
+     the execution function name together. */
+  pre.src-bash:before  { content: 'bash'; }
+  pre.src-csh:before  { content: 'csh'; }
+  pre.src-ash:before  { content: 'ash'; }
+  pre.src-dash:before  { content: 'dash'; }
+  pre.src-ksh:before  { content: 'ksh'; }
+  pre.src-mksh:before  { content: 'mksh'; }
+  pre.src-posh:before  { content: 'posh'; }
+  /* Additional Emacs modes also supported by the LaTeX listings package */
+  pre.src-ada:before { content: 'Ada'; }
+  pre.src-asm:before { content: 'Assembler'; }
+  pre.src-caml:before { content: 'Caml'; }
+  pre.src-delphi:before { content: 'Delphi'; }
+  pre.src-html:before { content: 'HTML'; }
+  pre.src-idl:before { content: 'IDL'; }
+  pre.src-mercury:before { content: 'Mercury'; }
+  pre.src-metapost:before { content: 'MetaPost'; }
+  pre.src-modula-2:before { content: 'Modula-2'; }
+  pre.src-pascal:before { content: 'Pascal'; }
+  pre.src-ps:before { content: 'PostScript'; }
+  pre.src-prolog:before { content: 'Prolog'; }
+  pre.src-simula:before { content: 'Simula'; }
+  pre.src-tcl:before { content: 'tcl'; }
+  pre.src-tex:before { content: 'TeX'; }
+  pre.src-plain-tex:before { content: 'Plain TeX'; }
+  pre.src-verilog:before { content: 'Verilog'; }
+  pre.src-vhdl:before { content: 'VHDL'; }
+  pre.src-xml:before { content: 'XML'; }
+  pre.src-nxml:before { content: 'XML'; }
+  /* add a generic configuration mode; LaTeX export needs an additional
+     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
+  pre.src-conf:before { content: 'Configuration File'; }
+
+  table { border-collapse:collapse; }
+  caption.t-above { caption-side: top; }
+  caption.t-bottom { caption-side: bottom; }
+  td, th { vertical-align:top;  }
+  th.org-right  { text-align: center;  }
+  th.org-left   { text-align: center;   }
+  th.org-center { text-align: center; }
+  td.org-right  { text-align: right;  }
+  td.org-left   { text-align: left;   }
+  td.org-center { text-align: center; }
+  dt { font-weight: bold; }
+  .footpara { display: inline; }
+  .footdef  { margin-bottom: 1em; }
+  .figure { padding: 1em; }
+  .figure p { text-align: center; }
+  .inlinetask {
+    padding: 10px;
+    border: 2px solid gray;
+    margin: 10px;
+    background: #ffffcc;
+  }
+  #org-div-home-and-up
+   { text-align: right; font-size: 70%; white-space: nowrap; }
+  textarea { overflow-x: auto; }
+  .linenr { font-size: smaller }
+  .code-highlighted { background-color: #ffff00; }
+  .org-info-js_info-navigation { border-style: none; }
+  #org-info-js_console-label
+    { font-size: 10px; font-weight: bold; white-space: nowrap; }
+  .org-info-js_search-highlight
+    { background-color: #ffff00; color: #000000; font-weight: bold; }
+  .org-svg { width: 90%; }
+  /*]]>*/-->
+</style>
+<link rel="stylesheet" type="text/css" href="styles/readtheorg/css/htmlize.css"/>
+<link rel="stylesheet" type="text/css" href="styles/readtheorg/css/readtheorg.css"/>
+<script type="text/javascript" src="styles/lib/js/jquery.min.js"></script>
+<script type="text/javascript" src="styles/lib/js/bootstrap.min.js"></script>
+<script type="text/javascript" src="styles/lib/js/jquery.stickytableheaders.min.js"></script>
+<script type="text/javascript" src="styles/readtheorg/js/readtheorg.js"></script>
+<script type="text/javascript">
+/*
+@licstart  The following is the entire license notice for the
+JavaScript code in this tag.
+
+Copyright (C) 2012-2019 Free Software Foundation, Inc.
+
+The JavaScript code in this tag is free software: you can
+redistribute it and/or modify it under the terms of the GNU
+General Public License (GNU GPL) as published by the Free Software
+Foundation, either version 3 of the License, or (at your option)
+any later version.  The code is distributed WITHOUT ANY WARRANTY;
+without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
+
+As additional permission under GNU GPL version 3 section 7, you
+may distribute non-source (e.g., minimized or compacted) forms of
+that code without the copy of the GNU GPL normally required by
+section 4, provided you include this license notice and a URL
+through which recipients can access the Corresponding Source.
+
+
+@licend  The above is the entire license notice
+for the JavaScript code in this tag.
+*/
+<!--/*--><![CDATA[/*><!--*/
+ function CodeHighlightOn(elem, id)
+ {
+   var target = document.getElementById(id);
+   if(null != target) {
+     elem.cacheClassElem = elem.className;
+     elem.cacheClassTarget = target.className;
+     target.className = "code-highlighted";
+     elem.className   = "code-highlighted";
+   }
+ }
+ function CodeHighlightOff(elem, id)
+ {
+   var target = document.getElementById(id);
+   if(elem.cacheClassElem)
+     elem.className = elem.cacheClassElem;
+   if(elem.cacheClassTarget)
+     target.className = elem.cacheClassTarget;
+ }
+/*]]>*///-->
+</script>
+</head>
+<body>
+<div id="content">
+<h1 class="title">Installation</h1>
+<div id="table-of-contents">
+<h2>Table des matières</h2>
+<div id="text-table-of-contents">
+<ul>
+<li><a href="#org65570e0">1. Installation d'Emacs</a>
+<ul>
+<li><a href="#org72d19c0">1.1. Version proposée par la distribution</a></li>
+<li><a href="#orgfe803c0">1.2. Préparation de l'installation</a></li>
+<li><a href="#org6cbe4f5">1.3. Nettoyage du système.</a></li>
+</ul>
+</li>
+<li><a href="#org74afa3a">2. Récupérer la configuration</a>
+<ul>
+<li><a href="#org980187d">2.1. Sauvegarde de l'ancienne configuration</a></li>
+<li><a href="#orgef60d6e">2.2. Téléchargement de la configuration</a></li>
+</ul>
+</li>
+<li><a href="#org59bc630">3. Python</a></li>
+<li><a href="#orgb9b4315">4. Global</a></li>
+<li><a href="#org0236d7c">5. C++</a></li>
+</ul>
+</div>
+</div>
+<p>
+Ce document se place dans le cas d'un système <b>GNU/Linux</b> pour une
+distribution <code>Debian</code> (ou basée sur <code>Debian</code> comme <code>Ubuntu</code> par exemple) et
+présuppose que l'utilisateur peut installer les logiciels par le biais
+de la commande <code>apt</code> et dispose donc des privilèges <code>root</code>.
+</p>
+
+<p>
+Dans le cas contraire, il reste possible d'utiliser cette
+configuration, mais l'utilisateur devra, soit utiliser les commandes
+<i>ad hoc</i> (dans le cas d'une autre distribution) soit les installer en
+recompilant éventuellement les logiciels.
+</p>
+
+<div style="color: red;" class="mdframed">
+<p>
+<b>IMPORTANT</b>
+</p>
+
+<p>
+Au premier lancement d'Emacs, tous les paquets nécessaires seront
+téléchargés puis compilés. Le premier démarrage prendra donc un
+certain temps. Ce ne sera évidemment plus le cas par la suite.
+</p>
+
+</div>
+
+
+<div id="outline-container-org65570e0" class="outline-2">
+<h2 id="org65570e0"><span class="section-number-2">1</span> Installation d'Emacs</h2>
+<div class="outline-text-2" id="text-1">
+<p>
+Pour que cette configuration fonctionne de manière optimale il faut
+que la version d'Emacs installée soit au moins la <code>26.0.50</code>.
+</p>
+
+<p>
+Pour commencer il faut vérifier si le système fourni de la version
+minimum nécessaire. Dans le cas contraire, il faut enrichir la base
+des paquets ou l'installer manuellement.
+</p>
+</div>
+
+<div id="outline-container-org72d19c0" class="outline-3">
+<h3 id="org72d19c0"><span class="section-number-3">1.1</span> Version proposée par la distribution</h3>
+<div class="outline-text-3" id="text-1-1">
+<p>
+Pour connaître la version du système on utilise la commande
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">lsb_release -a
+</pre>
+</div>
+
+<p>
+Jusqu'aux versions
+</p>
+<ul class="org-ul">
+<li><code>bionic</code> (<code>18.x.x</code>) d'<code>Ubuntu</code>,</li>
+<li><code>stretch</code> (<code>9.x.x</code>) de <code>Debian</code>,</li>
+</ul>
+<p>
+incluses, la version d'Emacs n'est pas suffisante.
+</p>
+
+<p>
+Si <code>Emacs</code> n'est pas installé est si les versions d'<code>Ubuntu</code> ou <code>Debian</code>
+sont suffisamment récentes, il suffit d'exécuter dans ce cas :
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">sudo apt update
+sudo apt -y install emacs
+</pre>
+</div>
+
+<p>
+Si Emacs était installé, on peut tout de même s'assurer de sa version
+en utilisant la commande.
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">emacs --version
+</pre>
+</div>
+<p>
+Si la version est suffisante (au delà de <code>26.0.50</code>), on peut ignorer le
+paragraphe suivant.
+</p>
+</div>
+</div>
+
+<div id="outline-container-orgfe803c0" class="outline-3">
+<h3 id="orgfe803c0"><span class="section-number-3">1.2</span> Préparation de l'installation</h3>
+<div class="outline-text-3" id="text-1-2">
+<p>
+Pour installer Emacs manuellement (ce qui n'est pas recommandé), on
+peut suivre les instructions données <a href="https://www.gnu.org/software/emacs/download.html">ici</a>.
+</p>
+
+<p>
+On se concentre ici sur une installation de paquets précompilés.
+</p>
+
+<p>
+On doit ajouter des dépôts de paquets pour l'installation, on s'assure
+donc que les outils de gestion de dépôts extérieurs sont disponibles.
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">sudo apt -y install software-properties-common
+</pre>
+</div>
+
+<p>
+On ajoute le dépôt en faisant.
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">sudo add-apt-repository -y ppa:kelleyk/emacs
+</pre>
+</div>
+
+<p>
+Puis on installe Emacs.
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">sudo apt -y install emacs26
+</pre>
+</div>
+
+<p>
+Pour terminer on s'assure que la version par défaut d'Emacs sera bien
+la 26. Pour cela, on exécute
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">sudo update-alternatives --set emacs /usr/bin/emacs26
+</pre>
+</div>
+
+<p>
+On peut vérifier à nouveau que tout s'est bien passé en exécutant
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">emacs --version
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org6cbe4f5" class="outline-3">
+<h3 id="org6cbe4f5"><span class="section-number-3">1.3</span> Nettoyage du système.</h3>
+<div class="outline-text-3" id="text-1-3">
+<p>
+Si une version d'Emacs était déjà installée, il est probable que des
+paquets Emacs l'aient été aussi. Pour que cette configuration
+fonctionne de manière optimale, il convient de les supprimer.
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">sudo apt remove -y --purge <span class="org-string">'^elpa*'</span>
+</pre>
+</div>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org74afa3a" class="outline-2">
+<h2 id="org74afa3a"><span class="section-number-2">2</span> Récupérer la configuration</h2>
+<div class="outline-text-2" id="text-2">
+</div>
+<div id="outline-container-org980187d" class="outline-3">
+<h3 id="org980187d"><span class="section-number-3">2.1</span> Sauvegarde de l'ancienne configuration</h3>
+<div class="outline-text-3" id="text-2-1">
+<p>
+Si Emacs avait déjà été utilisé sur le compte de l'utilisateur, il a
+généré automatiquement des fichiers de configuration. Il faut donc les
+supprimer (ou les sauvegarder) avant d'installer cette configuration.
+</p>
+
+<p>
+Ce sont des fichiers cachés que nous allons placer dans un répertoire
+pour éventuellement les réutiliser ultérieurement si cette
+configuration ne convient pas.
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">mkdir -p ~/sauvegarde.emacs-<span class="org-sh-quoted-exec">`date +%Y%m%d`</span>
+mv ~/.emacs* ~/sauvegarde.emacs-<span class="org-sh-quoted-exec">`date +%Y%m%d`</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgef60d6e" class="outline-3">
+<h3 id="orgef60d6e"><span class="section-number-3">2.2</span> Téléchargement de la configuration</h3>
+<div class="outline-text-3" id="text-2-2">
+<p>
+Pour obtenir la configuration, il est préférable d'utiliser <code>git</code>, pour
+l'installer il suffit d'exécuter la commande suivante.
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">sudo apt -y install git
+</pre>
+</div>
+
+<p>
+On peut maintenant récupérer la configuration.
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">git clone git@gitlab.delpinux.fr:delpino/dot-emacs.git ~/.emacs.d
+</pre>
+</div>
+
+<p>
+Il est maintenant possible de lancer Emacs. Comme on l'a dit, la
+configuration initiale va prendre un peu de temps. Et Emacs lui même
+va installer des paquets (<code>Debian</code> ou <code>Ubuntu</code>) pour satisfaire certaines
+dépendances.
+</p>
+
+<p>
+Il faudra répondre <b>oui</b> (<code>y</code>) à toutes les questions qu'il posera (et
+éventuellement entrer son mot de passe pour les interactions <code>sudo</code>).
+</p>
+
+<p>
+Une fois le premier lancement terminé, on fermera Emacs, puis on
+pourra éventuellement le relancer.
+</p>
+
+<p>
+Pour que toute la configuration soit totalement opérationnelle, il
+faut cependant installer quelques outils supplémentaires.
+</p>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org59bc630" class="outline-2">
+<h2 id="org59bc630"><span class="section-number-2">3</span> Python</h2>
+<div class="outline-text-2" id="text-3">
+<p>
+Pour utiliser correctement <code>Python</code> avec cette configuration, il faut
+installer <code>Python</code> (évidemment) et <code>virtualenv</code> qui va permettre
+d'exécuter les scripts directement dans Emacs et bénéficier de
+l'analyse syntaxique à la volée, entre autres.
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">sudo apt -y install python virtualenv python3-jedi python-jedi
+</pre>
+</div>
+<p>
+Il reste une dernière étape à accomplir, à savoir configurer le
+serveur <code>jedi</code> dans Emacs.
+</p>
+
+<p>
+Pour cela, on lance Emacs puis la commande <code>jedi:install-server</code>, à
+savoir dans Emacs taper
+</p>
+<div class="org-src-container">
+<pre class="src src-:eval">M-x jedi:install-server
+</pre>
+</div>
+<p>
+où <code>M-x</code> signifie qu'on appuie simultanément sur les touches <code>ALT</code> et <code>x</code>,
+on tape ensuite <code>jedi:install-server</code> à l'invite du <i>minibuffer</i> (tout en
+bas).
+</p>
+
+<p>
+Ensuite à la prochaine édition d'un fichier <code>Python</code>, Emacs terminera
+la configuration en demandant (dans le <i>minibuffer</i>)
+</p>
+<pre class="example">
+Please answer y or n.  Automatically install the RPC dependencies
+from PyPI (needed for completion, autoformatting and documentation) ?
+(y or n)
+</pre>
+<p>
+Il convient évidemment de répondre <code>y</code> à cette question.
+</p>
+</div>
+</div>
+
+<div id="outline-container-orgb9b4315" class="outline-2">
+<h2 id="orgb9b4315"><span class="section-number-2">4</span> Global</h2>
+<div class="outline-text-2" id="text-4">
+<p>
+On recommande aussi d'installer les <code>ggtags</code>.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-bash">sudo apt -y install global
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org0236d7c" class="outline-2">
+<h2 id="org0236d7c"><span class="section-number-2">5</span> C++</h2>
+<div class="outline-text-2" id="text-5">
+<p>
+Enfin, pour configurer correctement l'environnement de développement
+pour le <code>C++</code>, il effectuer quelques installations et configurations
+supplémentaires.
+</p>
+
+<p>
+On commence donc par installer <code>clang-9</code>.
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">sudo apt -y install clang-9 libclang-9-dev
+</pre>
+</div>
+
+<p>
+On va maintenant aider Emacs à trouver ces bonnes versions de
+compilateur. Pour cela, on va exécuter les commandes suivantes.
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">mkdir -p ~/bin
+ln -s /usr/bin/clang++-9 ~/bin/clang++
+ln -s /usr/bin/clang-9 ~/bin/clang
+ln -s /usr/bin/clang-format-9 ~/bin/clang-format
+</pre>
+</div>
+
+<p>
+Il faut alors ajouter
+</p>
+<div class="org-src-container">
+<pre class="src src-bash"><span class="org-builtin">export</span> <span class="org-variable-name">PATH</span>=~/bin:$<span class="org-variable-name">PATH</span>
+</pre>
+</div>
+<p>
+à son <code>~/.bashrc</code> si ce n'est pas déjà fait. Si on utilise un autre
+<i>shell</i>, on modifiera la variable <code>PATH</code> de la manière adéquate pour que
+<code>~/bin</code> apparaisse au début.
+</p>
+
+<p>
+À ce moment, le plus simple est de se déconnecter pour être sûr que
+cette modification est bien prise en compte.
+</p>
+
+<p>
+Il reste maintenant à compiler le serveur <code>irony</code> pour terminer
+l'installation. Pour cela, on doit installer <code>CMake</code>.
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">sudo apt -y install cmake
+</pre>
+</div>
+
+<p>
+On relance ensuite Emacs, et on exécute la commande
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">M-x irony-install-server
+</pre>
+</div>
+<p>
+Emacs propose alors une commande de compilation dans le <i>minibuffer</i>. Il
+suffit de presser <code>RET</code>. La compilation devrait se dérouler sans
+problème.
+</p>
+</div>
+</div>
+</div>
+<div id="postamble" class="status">
+<p class="date">Created: 2020-04-17 ven. 19:55</p>
+<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
+</div>
+</body>
+</html>
diff --git a/Installation.pdf b/Installation.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..9e15bed0803a584314d0f8b30988337595e12daa
Binary files /dev/null and b/Installation.pdf differ
diff --git a/Readme.html b/Readme.html
new file mode 100644
index 0000000000000000000000000000000000000000..fdb0b7e0e6a006aa50716bbb583f32ea5858a2d3
--- /dev/null
+++ b/Readme.html
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
+<head>
+<!-- 2020-04-17 ven. 19:55 -->
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>&lrm;</title>
+<meta name="generator" content="Org mode" />
+<style type="text/css">
+ <!--/*--><![CDATA[/*><!--*/
+  .title  { text-align: center;
+             margin-bottom: .2em; }
+  .subtitle { text-align: center;
+              font-size: medium;
+              font-weight: bold;
+              margin-top:0; }
+  .todo   { font-family: monospace; color: red; }
+  .done   { font-family: monospace; color: green; }
+  .priority { font-family: monospace; color: orange; }
+  .tag    { background-color: #eee; font-family: monospace;
+            padding: 2px; font-size: 80%; font-weight: normal; }
+  .timestamp { color: #bebebe; }
+  .timestamp-kwd { color: #5f9ea0; }
+  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
+  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
+  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
+  .underline { text-decoration: underline; }
+  #postamble p, #preamble p { font-size: 90%; margin: .2em; }
+  p.verse { margin-left: 3%; }
+  pre {
+    border: 1px solid #ccc;
+    box-shadow: 3px 3px 3px #eee;
+    padding: 8pt;
+    font-family: monospace;
+    overflow: auto;
+    margin: 1.2em;
+  }
+  pre.src {
+    position: relative;
+    overflow: visible;
+    padding-top: 1.2em;
+  }
+  pre.src:before {
+    display: none;
+    position: absolute;
+    background-color: white;
+    top: -10px;
+    right: 10px;
+    padding: 3px;
+    border: 1px solid black;
+  }
+  pre.src:hover:before { display: inline;}
+  /* Languages per Org manual */
+  pre.src-asymptote:before { content: 'Asymptote'; }
+  pre.src-awk:before { content: 'Awk'; }
+  pre.src-C:before { content: 'C'; }
+  /* pre.src-C++ doesn't work in CSS */
+  pre.src-clojure:before { content: 'Clojure'; }
+  pre.src-css:before { content: 'CSS'; }
+  pre.src-D:before { content: 'D'; }
+  pre.src-ditaa:before { content: 'ditaa'; }
+  pre.src-dot:before { content: 'Graphviz'; }
+  pre.src-calc:before { content: 'Emacs Calc'; }
+  pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
+  pre.src-fortran:before { content: 'Fortran'; }
+  pre.src-gnuplot:before { content: 'gnuplot'; }
+  pre.src-haskell:before { content: 'Haskell'; }
+  pre.src-hledger:before { content: 'hledger'; }
+  pre.src-java:before { content: 'Java'; }
+  pre.src-js:before { content: 'Javascript'; }
+  pre.src-latex:before { content: 'LaTeX'; }
+  pre.src-ledger:before { content: 'Ledger'; }
+  pre.src-lisp:before { content: 'Lisp'; }
+  pre.src-lilypond:before { content: 'Lilypond'; }
+  pre.src-lua:before { content: 'Lua'; }
+  pre.src-matlab:before { content: 'MATLAB'; }
+  pre.src-mscgen:before { content: 'Mscgen'; }
+  pre.src-ocaml:before { content: 'Objective Caml'; }
+  pre.src-octave:before { content: 'Octave'; }
+  pre.src-org:before { content: 'Org mode'; }
+  pre.src-oz:before { content: 'OZ'; }
+  pre.src-plantuml:before { content: 'Plantuml'; }
+  pre.src-processing:before { content: 'Processing.js'; }
+  pre.src-python:before { content: 'Python'; }
+  pre.src-R:before { content: 'R'; }
+  pre.src-ruby:before { content: 'Ruby'; }
+  pre.src-sass:before { content: 'Sass'; }
+  pre.src-scheme:before { content: 'Scheme'; }
+  pre.src-screen:before { content: 'Gnu Screen'; }
+  pre.src-sed:before { content: 'Sed'; }
+  pre.src-sh:before { content: 'shell'; }
+  pre.src-sql:before { content: 'SQL'; }
+  pre.src-sqlite:before { content: 'SQLite'; }
+  /* additional languages in org.el's org-babel-load-languages alist */
+  pre.src-forth:before { content: 'Forth'; }
+  pre.src-io:before { content: 'IO'; }
+  pre.src-J:before { content: 'J'; }
+  pre.src-makefile:before { content: 'Makefile'; }
+  pre.src-maxima:before { content: 'Maxima'; }
+  pre.src-perl:before { content: 'Perl'; }
+  pre.src-picolisp:before { content: 'Pico Lisp'; }
+  pre.src-scala:before { content: 'Scala'; }
+  pre.src-shell:before { content: 'Shell Script'; }
+  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
+  /* additional language identifiers per "defun org-babel-execute"
+       in ob-*.el */
+  pre.src-cpp:before  { content: 'C++'; }
+  pre.src-abc:before  { content: 'ABC'; }
+  pre.src-coq:before  { content: 'Coq'; }
+  pre.src-groovy:before  { content: 'Groovy'; }
+  /* additional language identifiers from org-babel-shell-names in
+     ob-shell.el: ob-shell is the only babel language using a lambda to put
+     the execution function name together. */
+  pre.src-bash:before  { content: 'bash'; }
+  pre.src-csh:before  { content: 'csh'; }
+  pre.src-ash:before  { content: 'ash'; }
+  pre.src-dash:before  { content: 'dash'; }
+  pre.src-ksh:before  { content: 'ksh'; }
+  pre.src-mksh:before  { content: 'mksh'; }
+  pre.src-posh:before  { content: 'posh'; }
+  /* Additional Emacs modes also supported by the LaTeX listings package */
+  pre.src-ada:before { content: 'Ada'; }
+  pre.src-asm:before { content: 'Assembler'; }
+  pre.src-caml:before { content: 'Caml'; }
+  pre.src-delphi:before { content: 'Delphi'; }
+  pre.src-html:before { content: 'HTML'; }
+  pre.src-idl:before { content: 'IDL'; }
+  pre.src-mercury:before { content: 'Mercury'; }
+  pre.src-metapost:before { content: 'MetaPost'; }
+  pre.src-modula-2:before { content: 'Modula-2'; }
+  pre.src-pascal:before { content: 'Pascal'; }
+  pre.src-ps:before { content: 'PostScript'; }
+  pre.src-prolog:before { content: 'Prolog'; }
+  pre.src-simula:before { content: 'Simula'; }
+  pre.src-tcl:before { content: 'tcl'; }
+  pre.src-tex:before { content: 'TeX'; }
+  pre.src-plain-tex:before { content: 'Plain TeX'; }
+  pre.src-verilog:before { content: 'Verilog'; }
+  pre.src-vhdl:before { content: 'VHDL'; }
+  pre.src-xml:before { content: 'XML'; }
+  pre.src-nxml:before { content: 'XML'; }
+  /* add a generic configuration mode; LaTeX export needs an additional
+     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
+  pre.src-conf:before { content: 'Configuration File'; }
+
+  table { border-collapse:collapse; }
+  caption.t-above { caption-side: top; }
+  caption.t-bottom { caption-side: bottom; }
+  td, th { vertical-align:top;  }
+  th.org-right  { text-align: center;  }
+  th.org-left   { text-align: center;   }
+  th.org-center { text-align: center; }
+  td.org-right  { text-align: right;  }
+  td.org-left   { text-align: left;   }
+  td.org-center { text-align: center; }
+  dt { font-weight: bold; }
+  .footpara { display: inline; }
+  .footdef  { margin-bottom: 1em; }
+  .figure { padding: 1em; }
+  .figure p { text-align: center; }
+  .inlinetask {
+    padding: 10px;
+    border: 2px solid gray;
+    margin: 10px;
+    background: #ffffcc;
+  }
+  #org-div-home-and-up
+   { text-align: right; font-size: 70%; white-space: nowrap; }
+  textarea { overflow-x: auto; }
+  .linenr { font-size: smaller }
+  .code-highlighted { background-color: #ffff00; }
+  .org-info-js_info-navigation { border-style: none; }
+  #org-info-js_console-label
+    { font-size: 10px; font-weight: bold; white-space: nowrap; }
+  .org-info-js_search-highlight
+    { background-color: #ffff00; color: #000000; font-weight: bold; }
+  .org-svg { width: 90%; }
+  /*]]>*/-->
+</style>
+<link rel="stylesheet" type="text/css" href="styles/readtheorg/css/htmlize.css"/>
+<link rel="stylesheet" type="text/css" href="styles/readtheorg/css/readtheorg.css"/>
+<script type="text/javascript" src="styles/lib/js/jquery.min.js"></script>
+<script type="text/javascript" src="styles/lib/js/bootstrap.min.js"></script>
+<script type="text/javascript" src="styles/lib/js/jquery.stickytableheaders.min.js"></script>
+<script type="text/javascript" src="styles/readtheorg/js/readtheorg.js"></script>
+<script type="text/javascript">
+/*
+@licstart  The following is the entire license notice for the
+JavaScript code in this tag.
+
+Copyright (C) 2012-2019 Free Software Foundation, Inc.
+
+The JavaScript code in this tag is free software: you can
+redistribute it and/or modify it under the terms of the GNU
+General Public License (GNU GPL) as published by the Free Software
+Foundation, either version 3 of the License, or (at your option)
+any later version.  The code is distributed WITHOUT ANY WARRANTY;
+without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
+
+As additional permission under GNU GPL version 3 section 7, you
+may distribute non-source (e.g., minimized or compacted) forms of
+that code without the copy of the GNU GPL normally required by
+section 4, provided you include this license notice and a URL
+through which recipients can access the Corresponding Source.
+
+
+@licend  The above is the entire license notice
+for the JavaScript code in this tag.
+*/
+<!--/*--><![CDATA[/*><!--*/
+ function CodeHighlightOn(elem, id)
+ {
+   var target = document.getElementById(id);
+   if(null != target) {
+     elem.cacheClassElem = elem.className;
+     elem.cacheClassTarget = target.className;
+     target.className = "code-highlighted";
+     elem.className   = "code-highlighted";
+   }
+ }
+ function CodeHighlightOff(elem, id)
+ {
+   var target = document.getElementById(id);
+   if(elem.cacheClassElem)
+     elem.className = elem.cacheClassElem;
+   if(elem.cacheClassTarget)
+     target.className = elem.cacheClassTarget;
+ }
+/*]]>*///-->
+</script>
+</head>
+<body>
+<div id="content">
+<div id="table-of-contents">
+<h2>Table des matières</h2>
+<div id="text-table-of-contents">
+<ul>
+<li><a href="#org0d60696">1. Installation</a></li>
+<li><a href="#orgc943273">2. Premiers pas avec Emacs</a></li>
+<li><a href="#org596a3c0">3. Configuration</a></li>
+<li><a href="#org236184f">4. À propos de cette configuration</a></li>
+</ul>
+</div>
+</div>
+
+<div id="outline-container-org0d60696" class="outline-2">
+<h2 id="org0d60696"><span class="section-number-2">1</span> Installation</h2>
+<div class="outline-text-2" id="text-1">
+<p>
+Il est <b>plus que recommandé</b> de suivre le fichier <a href="Installation.html">Installation.org</a> pas à
+pas.
+</p>
+
+<p>
+Emacs est chargé plus rapidement lorsqu'il est lancé en mode client
+(plusieurs client s'attachent à un même serveur). Pour bénéficier de
+cette optimisation ajouter les alias suivants à votre shell
+</p>
+<div class="org-src-container">
+<pre class="src src-shell"><span class="org-builtin">alias</span> <span class="org-variable-name">emacs</span>=<span class="org-string">"emacsclient -q -a '' -c"</span>
+<span class="org-builtin">alias</span> kill-emacs=<span class="org-string">"emacsclient -q -e '(let ((last-nonmenu-event nil))(save-buffers-kill-emacs))'"</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgc943273" class="outline-2">
+<h2 id="orgc943273"><span class="section-number-2">2</span> Premiers pas avec Emacs</h2>
+<div class="outline-text-2" id="text-2">
+<p>
+Emacs est bien plus qu'un éditeur de texte. C'est un véritable
+environnement de travail dont la tâche ne se réduit pas à la
+programmation. Certains vont jusqu'à parler de système d'exploitation.
+</p>
+
+<p>
+On fournit un tutoriel (voir <a href="Tutoriel.html">Tutoriel.org</a>) qui n'a pour but que de
+donner quelques liens utiles et de rappeler les principes de base
+ainsi que quelques raccourcis.
+</p>
+</div>
+</div>
+
+<div id="outline-container-org596a3c0" class="outline-2">
+<h2 id="org596a3c0"><span class="section-number-2">3</span> Configuration</h2>
+<div class="outline-text-2" id="text-3">
+<p>
+La configuration utilisée est définie dans le fichier
+<a href="Configuration.html">Configuration.org</a>.
+</p>
+</div>
+</div>
+
+<div id="outline-container-org236184f" class="outline-2">
+<h2 id="org236184f"><span class="section-number-2">4</span> À propos de cette configuration</h2>
+<div class="outline-text-2" id="text-4">
+<p>
+Cette configuration d'Emacs est grandement (et librement) inspirée de
+celle proposée par Mike Zamansky.
+</p>
+
+<p>
+Pour une excellente série tutoriels ainsi que la construction pas à
+pas de configurations, voir ci-dessous
+</p>
+<blockquote>
+<p>
+For a list of all posts and videos check out
+<a href="http://cestlaz.github.io/stories/emacs">http://cestlaz.github.io/stories/emacs</a>
+</p>
+
+<p>
+&#x2013; Mike Zamansky
+</p>
+</blockquote>
+</div>
+</div>
+</div>
+<div id="postamble" class="status">
+<p class="date">Created: 2020-04-17 ven. 19:55</p>
+<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
+</div>
+</body>
+</html>
diff --git a/Readme.pdf b/Readme.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..c65bb30bb93f70a8fbbbc4e1e30ee59981f183a9
Binary files /dev/null and b/Readme.pdf differ
diff --git a/Tutoriel.html b/Tutoriel.html
new file mode 100644
index 0000000000000000000000000000000000000000..5ba346fe006866edd375521ac1aea00511270347
--- /dev/null
+++ b/Tutoriel.html
@@ -0,0 +1,3233 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
+<head>
+<!-- 2020-04-17 ven. 19:55 -->
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>Un court tutoriel pour Emacs</title>
+<meta name="generator" content="Org mode" />
+<style type="text/css">
+ <!--/*--><![CDATA[/*><!--*/
+  .title  { text-align: center;
+             margin-bottom: .2em; }
+  .subtitle { text-align: center;
+              font-size: medium;
+              font-weight: bold;
+              margin-top:0; }
+  .todo   { font-family: monospace; color: red; }
+  .done   { font-family: monospace; color: green; }
+  .priority { font-family: monospace; color: orange; }
+  .tag    { background-color: #eee; font-family: monospace;
+            padding: 2px; font-size: 80%; font-weight: normal; }
+  .timestamp { color: #bebebe; }
+  .timestamp-kwd { color: #5f9ea0; }
+  .org-right  { margin-left: auto; margin-right: 0px;  text-align: right; }
+  .org-left   { margin-left: 0px;  margin-right: auto; text-align: left; }
+  .org-center { margin-left: auto; margin-right: auto; text-align: center; }
+  .underline { text-decoration: underline; }
+  #postamble p, #preamble p { font-size: 90%; margin: .2em; }
+  p.verse { margin-left: 3%; }
+  pre {
+    border: 1px solid #ccc;
+    box-shadow: 3px 3px 3px #eee;
+    padding: 8pt;
+    font-family: monospace;
+    overflow: auto;
+    margin: 1.2em;
+  }
+  pre.src {
+    position: relative;
+    overflow: visible;
+    padding-top: 1.2em;
+  }
+  pre.src:before {
+    display: none;
+    position: absolute;
+    background-color: white;
+    top: -10px;
+    right: 10px;
+    padding: 3px;
+    border: 1px solid black;
+  }
+  pre.src:hover:before { display: inline;}
+  /* Languages per Org manual */
+  pre.src-asymptote:before { content: 'Asymptote'; }
+  pre.src-awk:before { content: 'Awk'; }
+  pre.src-C:before { content: 'C'; }
+  /* pre.src-C++ doesn't work in CSS */
+  pre.src-clojure:before { content: 'Clojure'; }
+  pre.src-css:before { content: 'CSS'; }
+  pre.src-D:before { content: 'D'; }
+  pre.src-ditaa:before { content: 'ditaa'; }
+  pre.src-dot:before { content: 'Graphviz'; }
+  pre.src-calc:before { content: 'Emacs Calc'; }
+  pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
+  pre.src-fortran:before { content: 'Fortran'; }
+  pre.src-gnuplot:before { content: 'gnuplot'; }
+  pre.src-haskell:before { content: 'Haskell'; }
+  pre.src-hledger:before { content: 'hledger'; }
+  pre.src-java:before { content: 'Java'; }
+  pre.src-js:before { content: 'Javascript'; }
+  pre.src-latex:before { content: 'LaTeX'; }
+  pre.src-ledger:before { content: 'Ledger'; }
+  pre.src-lisp:before { content: 'Lisp'; }
+  pre.src-lilypond:before { content: 'Lilypond'; }
+  pre.src-lua:before { content: 'Lua'; }
+  pre.src-matlab:before { content: 'MATLAB'; }
+  pre.src-mscgen:before { content: 'Mscgen'; }
+  pre.src-ocaml:before { content: 'Objective Caml'; }
+  pre.src-octave:before { content: 'Octave'; }
+  pre.src-org:before { content: 'Org mode'; }
+  pre.src-oz:before { content: 'OZ'; }
+  pre.src-plantuml:before { content: 'Plantuml'; }
+  pre.src-processing:before { content: 'Processing.js'; }
+  pre.src-python:before { content: 'Python'; }
+  pre.src-R:before { content: 'R'; }
+  pre.src-ruby:before { content: 'Ruby'; }
+  pre.src-sass:before { content: 'Sass'; }
+  pre.src-scheme:before { content: 'Scheme'; }
+  pre.src-screen:before { content: 'Gnu Screen'; }
+  pre.src-sed:before { content: 'Sed'; }
+  pre.src-sh:before { content: 'shell'; }
+  pre.src-sql:before { content: 'SQL'; }
+  pre.src-sqlite:before { content: 'SQLite'; }
+  /* additional languages in org.el's org-babel-load-languages alist */
+  pre.src-forth:before { content: 'Forth'; }
+  pre.src-io:before { content: 'IO'; }
+  pre.src-J:before { content: 'J'; }
+  pre.src-makefile:before { content: 'Makefile'; }
+  pre.src-maxima:before { content: 'Maxima'; }
+  pre.src-perl:before { content: 'Perl'; }
+  pre.src-picolisp:before { content: 'Pico Lisp'; }
+  pre.src-scala:before { content: 'Scala'; }
+  pre.src-shell:before { content: 'Shell Script'; }
+  pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
+  /* additional language identifiers per "defun org-babel-execute"
+       in ob-*.el */
+  pre.src-cpp:before  { content: 'C++'; }
+  pre.src-abc:before  { content: 'ABC'; }
+  pre.src-coq:before  { content: 'Coq'; }
+  pre.src-groovy:before  { content: 'Groovy'; }
+  /* additional language identifiers from org-babel-shell-names in
+     ob-shell.el: ob-shell is the only babel language using a lambda to put
+     the execution function name together. */
+  pre.src-bash:before  { content: 'bash'; }
+  pre.src-csh:before  { content: 'csh'; }
+  pre.src-ash:before  { content: 'ash'; }
+  pre.src-dash:before  { content: 'dash'; }
+  pre.src-ksh:before  { content: 'ksh'; }
+  pre.src-mksh:before  { content: 'mksh'; }
+  pre.src-posh:before  { content: 'posh'; }
+  /* Additional Emacs modes also supported by the LaTeX listings package */
+  pre.src-ada:before { content: 'Ada'; }
+  pre.src-asm:before { content: 'Assembler'; }
+  pre.src-caml:before { content: 'Caml'; }
+  pre.src-delphi:before { content: 'Delphi'; }
+  pre.src-html:before { content: 'HTML'; }
+  pre.src-idl:before { content: 'IDL'; }
+  pre.src-mercury:before { content: 'Mercury'; }
+  pre.src-metapost:before { content: 'MetaPost'; }
+  pre.src-modula-2:before { content: 'Modula-2'; }
+  pre.src-pascal:before { content: 'Pascal'; }
+  pre.src-ps:before { content: 'PostScript'; }
+  pre.src-prolog:before { content: 'Prolog'; }
+  pre.src-simula:before { content: 'Simula'; }
+  pre.src-tcl:before { content: 'tcl'; }
+  pre.src-tex:before { content: 'TeX'; }
+  pre.src-plain-tex:before { content: 'Plain TeX'; }
+  pre.src-verilog:before { content: 'Verilog'; }
+  pre.src-vhdl:before { content: 'VHDL'; }
+  pre.src-xml:before { content: 'XML'; }
+  pre.src-nxml:before { content: 'XML'; }
+  /* add a generic configuration mode; LaTeX export needs an additional
+     (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
+  pre.src-conf:before { content: 'Configuration File'; }
+
+  table { border-collapse:collapse; }
+  caption.t-above { caption-side: top; }
+  caption.t-bottom { caption-side: bottom; }
+  td, th { vertical-align:top;  }
+  th.org-right  { text-align: center;  }
+  th.org-left   { text-align: center;   }
+  th.org-center { text-align: center; }
+  td.org-right  { text-align: right;  }
+  td.org-left   { text-align: left;   }
+  td.org-center { text-align: center; }
+  dt { font-weight: bold; }
+  .footpara { display: inline; }
+  .footdef  { margin-bottom: 1em; }
+  .figure { padding: 1em; }
+  .figure p { text-align: center; }
+  .inlinetask {
+    padding: 10px;
+    border: 2px solid gray;
+    margin: 10px;
+    background: #ffffcc;
+  }
+  #org-div-home-and-up
+   { text-align: right; font-size: 70%; white-space: nowrap; }
+  textarea { overflow-x: auto; }
+  .linenr { font-size: smaller }
+  .code-highlighted { background-color: #ffff00; }
+  .org-info-js_info-navigation { border-style: none; }
+  #org-info-js_console-label
+    { font-size: 10px; font-weight: bold; white-space: nowrap; }
+  .org-info-js_search-highlight
+    { background-color: #ffff00; color: #000000; font-weight: bold; }
+  .org-svg { width: 90%; }
+  /*]]>*/-->
+</style>
+<link rel="stylesheet" type="text/css" href="styles/readtheorg/css/htmlize.css"/>
+<link rel="stylesheet" type="text/css" href="styles/readtheorg/css/readtheorg.css"/>
+<script type="text/javascript" src="styles/lib/js/jquery.min.js"></script>
+<script type="text/javascript" src="styles/lib/js/bootstrap.min.js"></script>
+<script type="text/javascript" src="styles/lib/js/jquery.stickytableheaders.min.js"></script>
+<script type="text/javascript" src="styles/readtheorg/js/readtheorg.js"></script>
+<script type="text/javascript">
+/*
+@licstart  The following is the entire license notice for the
+JavaScript code in this tag.
+
+Copyright (C) 2012-2019 Free Software Foundation, Inc.
+
+The JavaScript code in this tag is free software: you can
+redistribute it and/or modify it under the terms of the GNU
+General Public License (GNU GPL) as published by the Free Software
+Foundation, either version 3 of the License, or (at your option)
+any later version.  The code is distributed WITHOUT ANY WARRANTY;
+without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE.  See the GNU GPL for more details.
+
+As additional permission under GNU GPL version 3 section 7, you
+may distribute non-source (e.g., minimized or compacted) forms of
+that code without the copy of the GNU GPL normally required by
+section 4, provided you include this license notice and a URL
+through which recipients can access the Corresponding Source.
+
+
+@licend  The above is the entire license notice
+for the JavaScript code in this tag.
+*/
+<!--/*--><![CDATA[/*><!--*/
+ function CodeHighlightOn(elem, id)
+ {
+   var target = document.getElementById(id);
+   if(null != target) {
+     elem.cacheClassElem = elem.className;
+     elem.cacheClassTarget = target.className;
+     target.className = "code-highlighted";
+     elem.className   = "code-highlighted";
+   }
+ }
+ function CodeHighlightOff(elem, id)
+ {
+   var target = document.getElementById(id);
+   if(elem.cacheClassElem)
+     elem.className = elem.cacheClassElem;
+   if(elem.cacheClassTarget)
+     target.className = elem.cacheClassTarget;
+ }
+/*]]>*///-->
+</script>
+<script type="text/x-mathjax-config">
+    MathJax.Hub.Config({
+        displayAlign: "center",
+        displayIndent: "0em",
+
+        "HTML-CSS": { scale: 100,
+                        linebreaks: { automatic: "false" },
+                        webFont: "TeX"
+                       },
+        SVG: {scale: 100,
+              linebreaks: { automatic: "false" },
+              font: "TeX"},
+        NativeMML: {scale: 100},
+        TeX: { equationNumbers: {autoNumber: "AMS"},
+               MultLineWidth: "85%",
+               TagSide: "right",
+               TagIndent: ".8em"
+             }
+});
+</script>
+<script type="text/javascript"
+        src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
+</head>
+<body>
+<div id="content">
+<h1 class="title">Un court tutoriel pour Emacs</h1>
+<div id="table-of-contents">
+<h2>Table des matières</h2>
+<div id="text-table-of-contents">
+<ul>
+<li><a href="#orgec21dd6">1. Historique</a></li>
+<li><a href="#orgabc5bfa">2. Lancement d'Emacs</a></li>
+<li><a href="#org0f81a44">3. Prise en main</a>
+<ul>
+<li><a href="#org77f4b37">3.1. Interface</a>
+<ul>
+<li><a href="#org5359102">3.1.1. <i>Buffers</i></a></li>
+<li><a href="#org9887f9b">3.1.2. <i>Windows</i></a></li>
+<li><a href="#org5813b41">3.1.3. Cadre (<i>frames</i>)</a></li>
+<li><a href="#org6464c4b">3.1.4. <i>Modeline</i></a></li>
+<li><a href="#org32b8e29">3.1.5. <i>Minibuffer</i></a></li>
+</ul>
+</li>
+<li><a href="#org2473e02">3.2. Fonctions</a></li>
+</ul>
+</li>
+<li><a href="#org5012d36">4. Quelques raccourcis</a>
+<ul>
+<li><a href="#org38b8f3a">4.1. Commandes générales</a></li>
+<li><a href="#org19ad496">4.2. <i>minibuffer</i></a></li>
+<li><a href="#orga79cec6">4.3. Obtenir de l'aide</a></li>
+<li><a href="#org9087303">4.4. Naviguer dans un <i>buffer</i></a></li>
+<li><a href="#org299d9f7">4.5. Marquer une zone d'un <i>buffer</i></a></li>
+<li><a href="#org1cb5087">4.6. Éditer le contenu d'un <i>buffer</i></a></li>
+<li><a href="#orgd6c9059">4.7. Gestion des <i>buffers</i>, fenêtres et cadres</a>
+<ul>
+<li><a href="#orgdf00108">4.7.1. <i>buffers</i></a></li>
+<li><a href="#orgbb37bbd">4.7.2. Fenêtres</a></li>
+<li><a href="#orgf41179b">4.7.3. Cadres (<i>frames</i>)</a></li>
+</ul>
+</li>
+<li><a href="#orgddae73e">4.8. Fichiers</a></li>
+<li><a href="#orgd2d81fe">4.9. Recherche</a></li>
+<li><a href="#org27c2fc0">4.10. Remplacement de texte</a></li>
+<li><a href="#org3ea1574">4.11. Répétitions et macros</a></li>
+<li><a href="#orga5132b8">4.12. Complétion</a></li>
+</ul>
+</li>
+<li><a href="#org930a4aa">5. Modes utiles</a>
+<ul>
+<li><a href="#orge6aee40">5.1. Modes utilitaires</a>
+<ul>
+<li><a href="#org7f6aa21">5.1.1. Flyspell</a></li>
+<li><a href="#org40085ae">5.1.2. FlyCheck</a></li>
+</ul>
+</li>
+<li><a href="#org5baee2c">5.2. Interfaces avec <code>git</code></a>
+<ul>
+<li><a href="#orgd0cdab8">5.2.1. GitGutter</a></li>
+<li><a href="#orgd3b7b3e">5.2.2. Magit</a></li>
+</ul>
+</li>
+<li><a href="#orgd378205">5.3. Rédaction de documents LaTeX</a>
+<ul>
+<li><a href="#orga6ed013">5.3.1. AUCTeX</a></li>
+<li><a href="#orgf4918cd">5.3.2. RefTeX</a></li>
+</ul>
+</li>
+<li><a href="#org2ac1179">5.4. Programmation</a>
+<ul>
+<li><a href="#orgd602f40">5.4.1. Python</a></li>
+<li><a href="#orgb2d0921">5.4.2. C++</a></li>
+<li><a href="#org09db0b4">5.4.3. Tags</a></li>
+<li><a href="#org44ba3b7">5.4.4. YASnippet</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="#org6a3e84f">6. Pour aller plus loin</a>
+<ul>
+<li><a href="#orgc162f55">6.1. Org-mode</a></li>
+<li><a href="#org24a67a3">6.2. Pliage et dépliage avec <code>narrow-or-widen-dwim</code></a></li>
+<li><a href="#orgb8c74bc">6.3. Autres modes installés</a></li>
+<li><a href="#orgc0b25c3">6.4. Personnalisation</a>
+<ul>
+<li><a href="#orga7d01e4">6.4.1. custom.el</a></li>
+<li><a href="#orgda154fe">6.4.2. Emacs lisp</a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+
+
+<div id="outline-container-orgec21dd6" class="outline-2">
+<h2 id="orgec21dd6"><span class="section-number-2">1</span> Historique</h2>
+<div class="outline-text-2" id="text-1">
+<p>
+<a href="https://fr.wikipedia.org/wiki/Emacs">Emacs</a> (initialement pour <i><b>Editing MACroS</b> running on TECO</i>) fut créé
+par <a href="https://fr.wikipedia.org/wiki/Richard_Stallman">Richard M. Stallman</a> (dit RMS) et <a href="https://fr.wikipedia.org/wiki/Guy_L._Steele,_Jr.">Guy L. Steele</a> en 1976. Il
+s'agissait alors d'une collection de macro-commandes pour simplifier
+l'utilisation de <a href="https://fr.wikipedia.org/wiki/TECO">TECO</a> (1964) qui était langage de programmation pour
+l'édition de fichier orienté ligne.
+</p>
+
+<p>
+En 1983 RMS lance le projet <a href="https://fr.wikipedia.org/wiki/Projet_GNU">GNU</a> et l'une de ses premières tâches est
+de le doter d'un éditeur digne de ce nom. Profitant de son expérience
+et en s'inspirant de <a href="https://fr.wikipedia.org/wiki/Gosling_Emacs">Gosling Emacs</a> il crée <a href="https://fr.wikipedia.org/wiki/GNU_Emacs">GNU Emacs</a>. Pour cela, il
+l'écrit en <a href="https://fr.wikipedia.org/wiki/C_(langage)">C</a> et permet l'écriture d'extensions en <a href="https://fr.wikipedia.org/wiki/Emacs_Lisp">Emacs Lisp</a>. C'est
+probablement cette extensibilité qui fait que malgré son âge avancé,
+Emacs est l'un des outils les plus utilisés pour le développement.
+</p>
+</div>
+</div>
+
+<div id="outline-container-orgabc5bfa" class="outline-2">
+<h2 id="orgabc5bfa"><span class="section-number-2">2</span> Lancement d'Emacs</h2>
+<div class="outline-text-2" id="text-2">
+<p>
+Pour lancer Emacs, il suffit de taper la commande
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">emacs
+</pre>
+</div>
+<p>
+dans un terminal. Si le terminal ne permet pas l'ouverture de fenêtres
+graphiques (pas de <code>DISPLAY</code>), Emacs démarrera alors en mode texte. Si
+on utilise l'option <code>-nw</code>, pour <i>no window</i>, on force le lancement d'Emacs
+en mode texte.
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">emacs -nw
+</pre>
+</div>
+<p>
+Attention dans ce mode, pour quitter Emacs, il faut utiliser le
+raccourcis clavier <code>C-x C-c</code> (contrôle-x puis contrôle-c). Une dernière
+option pratique est l'option <code>-q</code>. Son effet est de lancer Emacs sans
+utiliser la configuration locale.
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">emacs -q
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org0f81a44" class="outline-2">
+<h2 id="org0f81a44"><span class="section-number-2">3</span> Prise en main</h2>
+<div class="outline-text-2" id="text-3">
+<p>
+La prise en main d'Emacs n'est pas difficile pour une utilisation
+basique. En mode graphique Emacs dispose de menus qui permettent
+d'accéder à toutes les opérations classiques. Néanmoins, pour
+l'utiliser plus efficacement, il convient de comprendre un peu son
+fonctionnement.
+</p>
+
+<p>
+Comme on l'a dit, Emacs a vu le jour comme un ensemble de <b>macros</b>,
+c'est-à-dire des enchaînements de commandes simples ou d'autres
+macros.  Ces macros (ou plus précisément ces <b>fonctions</b>) sont toujours
+un des piliers du fonctionnement d'Emacs. Le nombre de fonctions
+proposées par Emacs est très important et pour y accéder rapidement
+Emacs permet l'usage de raccourcis clavier. C'est en apprenant et en
+utilisant ces raccourcis qu'on gagne en productivité. L'utilisation de
+la souris avec Emacs est donc souvent contre productive. Enfin on peut
+facilement créer et enregistrer des enchaînements de commandes pour
+éviter les tâches répétitives.
+</p>
+
+<p>
+Une première façon d'apprendre un peu Emacs est d'effectuer le
+<b>tutoriel intégré</b> qu'il propose. Pour démarrer le tutoriel il suffit de
+saisir le raccourcis <code>C-h t</code>. Pour le novice, cela signifie qu'on doit
+taper sur la touche contrôle (<code>C</code>) et sur la touche <code>h</code> simultanément,
+puis sur la touche <code>t</code> seulement.
+</p>
+</div>
+
+<div id="outline-container-org77f4b37" class="outline-3">
+<h3 id="org77f4b37"><span class="section-number-3">3.1</span> Interface</h3>
+<div class="outline-text-3" id="text-3-1">
+<p>
+Globalement, l'interface d'Emacs est assez intuitive, mais elle a
+conservé tous les ingrédients qui en faisaient sa richesse alors que
+ce n'était pas une application graphique (la première version
+graphique de GNU Emacs est la 19, sortie en 1994). Certains de ses
+concepts ne sont donc pas si communs de nos jours.
+</p>
+</div>
+
+<div id="outline-container-org5359102" class="outline-4">
+<h4 id="org5359102"><span class="section-number-4">3.1.1</span> <i>Buffers</i></h4>
+<div class="outline-text-4" id="text-3-1-1">
+<p>
+Un <i>buffer</i> est une zone tampon et la plus petite unité d'édition. Il
+correspond en général à la vue d'un fichier édité.
+</p>
+</div>
+</div>
+
+<div id="outline-container-org9887f9b" class="outline-4">
+<h4 id="org9887f9b"><span class="section-number-4">3.1.2</span> <i>Windows</i></h4>
+<div class="outline-text-4" id="text-3-1-2">
+<p>
+Il est possible de visualiser plusieurs <i>buffers</i> simultanément dans
+Emacs. Chaque vue est appelée <b>fenêtre</b>. Attention, dans le jargon
+Emacs, une fenêtre n'est pas à confondre avec les fenêtres gérées par
+le <i>window-manager</i> de l'interface graphique (voir
+figure <a href="#orgefe5df7">1</a>, où un <a href="#orgc2613c8">cadre</a> Emacs est découpé en trois
+fenêtres). On peut afficher un <b>même</b> <i>buffer</i> dans différentes fenêtres
+et il peut être modifié dans n'importe laquelle de ses vues.
+</p>
+
+
+<div id="orgefe5df7" class="figure">
+<p><img src="emacs-windows.png" alt="emacs-windows.png" />
+</p>
+<p><span class="figure-number">Figure&nbsp;1&nbsp;: </span>Trois fenêtres affichées dans Emacs</p>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org5813b41" class="outline-4">
+<h4 id="org5813b41"><span class="section-number-4">3.1.3</span> <a id="orgc2613c8"></a> Cadre (<i>frames</i>)</h4>
+<div class="outline-text-4" id="text-3-1-3">
+<p>
+Lorsqu'il est exécuté en mode graphique, une même instance d'Emacs
+peut proposer plusieurs cadres (<i>frames</i>) d'affichage. Il s'agit en fait
+de plusieurs fenêtres du gestionnaire graphique.
+</p>
+
+<p>
+Dans l'exemple de la figure <a href="#org43c68ad">2</a>, il s'agit bien de la même
+instance d'Emacs&nbsp;: on a lancé un seul exécutable, mais on a ouvert un
+cadre (<i>frame</i>) supplémentaire. Dans chacun des cadres, on affiche une
+vue d'un <b>même</b> <i>buffer</i> d'édition, c'est-à-dire que le <b>même</b> <i>buffer</i> peut
+être modifié par l'intermédiaire de l'un ou l'autre des cadres.
+</p>
+
+
+<div id="org43c68ad" class="figure">
+<p><img src="emacs-frames.png" alt="emacs-frames.png" />
+</p>
+<p><span class="figure-number">Figure&nbsp;2&nbsp;: </span>Deux cadres (<i>frames</i>) Emacs affichant le même <i>buffer</i></p>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org6464c4b" class="outline-4">
+<h4 id="org6464c4b"><span class="section-number-4">3.1.4</span> <i>Modeline</i></h4>
+<div class="outline-text-4" id="text-3-1-4">
+<p>
+Dans Emacs, chaque <i>buffer</i> est délimité <b>en bas</b> par la <i>modeline</i>. Il
+s'agit d'une zone dans laquelle sont affichées divers informations
+quant au mode de fonctionnement d'Emacs dans son <i>buffer</i>. On la voit en
+action sur la figure <a href="#orga0ffbc7">3</a>, le mode majeur est <code>CMake</code>, le
+fichier édité s'appelle <code>CMakeList.txt</code>, enfin, on travaille sur la
+branche <code>develop</code>.
+</p>
+
+
+<div id="orga0ffbc7" class="figure">
+<p><img src="emacs-modeline.png" alt="emacs-modeline.png" />
+</p>
+<p><span class="figure-number">Figure&nbsp;3&nbsp;: </span>La <i>modeline</i>. Ici on voit qu'on est en mode <code>CMake</code>, que le fichier édité s'appelle <code>CMakeList.txt</code> et qu'on travaille sur la branche <code>develop</code>.</p>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org32b8e29" class="outline-4">
+<h4 id="org32b8e29"><span class="section-number-4">3.1.5</span> <i>Minibuffer</i></h4>
+<div class="outline-text-4" id="text-3-1-5">
+<p>
+Le <i>minibuffer</i> est un <i>buffer</i> spécial d'Emacs. C'est la zone
+d'interaction avec l'utilisateur. C'est là qu'on doit répondre aux
+éventuelles questions d'Emacs et c'est là qu'on tape les commandes. Il
+faut donc le garder constamment à l'oeil. Voir la
+figure <a href="#org9ca99fa">4</a> (ici une exécution de <code>grep</code> dans Emacs en
+préparation). Pour exécuter une commande dans le <i>minibuffer</i> il faut
+taper <code>M-x</code>.
+</p>
+
+
+<div id="org9ca99fa" class="figure">
+<p><img src="emacs-minibuffer.png" alt="emacs-minibuffer.png" />
+</p>
+<p><span class="figure-number">Figure&nbsp;4&nbsp;: </span>Le <i>minibuffer</i> en action. Préparation de l'exécution d'une commande <code>grep</code> dans Emacs.</p>
+</div>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org2473e02" class="outline-3">
+<h3 id="org2473e02"><span class="section-number-3">3.2</span> Fonctions</h3>
+<div class="outline-text-3" id="text-3-2">
+<p>
+Dans Emacs, tout est fonction. Et toute fonction peut-être surchargée
+localement (dans un <i>buffer</i>), une famille de <i>buffers</i> (un <b>mode</b>) ou
+globalement (dans tout Emacs).
+</p>
+
+<p>
+Par exemple, presser une touche (quel que soit le contexte) déclenche
+l'appel d'une fonction et cette fonction dépend du contexte dans
+lequel la touche est pressée. C'est ce concepts qui fait d'Emacs un
+outil aussi puissant et versatile. Les fonctions peuvent être de deux
+types. Ce sont
+</p>
+<ul class="org-ul">
+<li>soit des fonctions internes (écrites en <code>C</code>),</li>
+<li>soit des fonctions utilisateur écrites en <code>ELisp</code>.</li>
+</ul>
+<p>
+Par le passé, ce deuxième type de fonctions pouvait dégrader les
+performances d'Emacs (si bien que certains lui donnaient l'acronyme
+récursif <i>Emacs Makes All Computer Slow</i>). Mais les gains de
+performances des ordinateurs et l'utilisation d'<code>ELisp</code> <i>byte</i>-compilé
+plutôt que simplement interprété ont corrigé ce défaut.
+</p>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org5012d36" class="outline-2">
+<h2 id="org5012d36"><span class="section-number-2">4</span> Quelques raccourcis</h2>
+<div class="outline-text-2" id="text-4">
+<p>
+On présente dans cette partie certains raccourcis utiles. Lorsque les
+raccourcis de cette configuration diffèrent des raccourcis standard
+d'Emacs, on l'indique.
+</p>
+
+<p>
+Mais rappelons tout d'abord les notations et principes.
+</p>
+<ul class="org-ul">
+<li><code>C-a</code> signifie qu'on appuie simultanément sur les touches <code>Ctrl</code>
+(contrôle) et <code>a</code>.</li>
+<li><code>C-M-a</code> signifie qu'on appuie simultanément sur les touches <code>Ctrl</code>,
+<code>Meta</code> (<code>Alt</code> sur les claviers modernes) et <code>a</code>.</li>
+<li><code>C-S-a</code> signifie qu'on appuie simultanément sur les touches <code>Ctrl</code>, <code>Maj</code> et <code>a</code>.</li>
+<li><code>C-a C-b c</code> signifie qu'on appuie simultanément sur les touches
+<code>Ctrl</code> et <code>a</code>, puis simultanément sur les touches <code>Ctrl</code> et <code>b</code>,
+puis sur la touche <code>b</code>.</li>
+</ul>
+
+<p>
+On ne liste ici que quelques unes des commandes (et raccourcis),
+seulement une liste de celles qu'on juge importantes.
+</p>
+
+<p>
+Noter que cette configuration utilise le mode <code>which-key</code>, dont l'une
+des fonctionnalités est de fournir une aide dans le <i>minibuffer</i> lors de
+la saisie de commandes. Par exemple, si on tape <code>C-x</code>, au bout d'un
+instant <code>which-key</code> affiche dans le <i>minibuffer</i> la liste des commandes
+qui commencent par <code>C-x</code>. C'est donc un excellent moyen de retrouver les
+raccourcis et d'en apprendre de nouveaux. Cette aide est évidemment
+contextuelle.
+</p>
+</div>
+
+<div id="outline-container-org38b8f3a" class="outline-3">
+<h3 id="org38b8f3a"><span class="section-number-3">4.1</span> Commandes générales</h3>
+<div class="outline-text-3" id="text-4-1">
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x C-c</code></td>
+<td class="org-left">Sort d'Emacs</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-g</code></td>
+<td class="org-left">Interrompt la commande en cours</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-S-g</code></td>
+<td class="org-left">Force l'interruption de la commande</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-x</code></td>
+<td class="org-left">Lance une commande (dans le <i>minibuffer</i>)</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-n</code></td>
+<td class="org-left">Relance l'évaluation du <i>buffer</i> (<code>normal-mode</code>)</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+
+<div id="outline-container-org19ad496" class="outline-3">
+<h3 id="org19ad496"><span class="section-number-3">4.2</span> <i>minibuffer</i></h3>
+<div class="outline-text-3" id="text-4-2">
+<p>
+Lors d'une interaction avec le <i>minibuffer</i>, on a accès à certains
+raccourcis qui facilitent son utilisation.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>M-x</code></td>
+<td class="org-left">Lance une interaction dans le <i>minibuffer</i></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x ESC ESC</code></td>
+<td class="org-left">Édite la dernière commande dans le <i>minibuffer</i></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>TAB</code></td>
+<td class="org-left">Complète l'entrée autant que possible</td>
+</tr>
+</tbody>
+</table>
+<p>
+Cette configuration utilise <code>swiper</code>, donc toutes les interactions
+effectuées dans le <i>minibuffer</i> proposent la liste des commandes
+disponibles qui correspondent à la chaîne entrée (<code>SPC</code> faisant office
+de n'importe quelle liste de caractères). Il est alors possible de
+naviguer dans cette liste (en utilisant les flèches du clavier pas
+exemple)
+</p>
+</div>
+</div>
+
+<div id="outline-container-orga79cec6" class="outline-3">
+<h3 id="orga79cec6"><span class="section-number-3">4.3</span> Obtenir de l'aide</h3>
+<div class="outline-text-3" id="text-4-3">
+<p>
+On peut lancer l'aide en tapant <code>C-h</code> et en suivant les indications du
+<i>minibuffer</i>.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-h t</code></td>
+<td class="org-left">Lance le tutoriel intégré</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-h m</code></td>
+<td class="org-left">Informations sur le mode courant</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-h i</code></td>
+<td class="org-left">Accède à la documentation (<code>info</code>)</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-h a</code></td>
+<td class="org-left"><b>à propos</b> (interaction dans le <i>minibuffer</i>)</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+
+<div id="outline-container-org9087303" class="outline-3">
+<h3 id="org9087303"><span class="section-number-3">4.4</span> Naviguer dans un <i>buffer</i></h3>
+<div class="outline-text-3" id="text-4-4">
+<p>
+Au delà des flèches et autres touches usuelles du clavier, Emacs
+propose d'autres moyens de se déplacer dans un <i>buffer</i>.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-b</code></td>
+<td class="org-left">Recule d'un caractère</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-f</code></td>
+<td class="org-left">Avance d'un caractère</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left"><code>M-b</code></td>
+<td class="org-left">Recule d'un mot</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-f</code></td>
+<td class="org-left">Avance d'un mot</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left"><code>C-p</code></td>
+<td class="org-left">Ligne précédente</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-n</code></td>
+<td class="org-left">Ligne suivante</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left"><code>C-a</code></td>
+<td class="org-left">Début de ligne</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-e</code></td>
+<td class="org-left">Fin de ligne</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left"><code>M-a</code></td>
+<td class="org-left">Début de la phrase</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-e</code></td>
+<td class="org-left">Fin de la phrase</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-m</code></td>
+<td class="org-left">Début de l'indentation</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left"><code>M-g g</code> <i>numéro</i></td>
+<td class="org-left">Positionne le curseur à la ligne numéro <i>numéro</i></td>
+</tr>
+</tbody>
+</table>
+
+<p>
+Noter qu'on peut généralement utiliser des combinaisons de <code>Ctrl</code>,
+<code>Meta</code>,&#x2026;  avec les touches de déplacement du clavier (comme les
+flèches).
+</p>
+</div>
+</div>
+
+<div id="outline-container-org299d9f7" class="outline-3">
+<h3 id="org299d9f7"><span class="section-number-3">4.5</span> Marquer une zone d'un <i>buffer</i></h3>
+<div class="outline-text-3" id="text-4-5">
+<p>
+Une zone est délimitée par une une <b>marque</b> (position de départ) et la
+position courante du curseur Créer une zone consiste donc à poser une
+<b>marque</b>, puis à déplacer le curseur pour la délimiter. Tous les
+caractères compris entre ces deux positions font partie de la zone.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-SPC</code> ou <code>C-@</code></td>
+<td class="org-left">Pose une <b>marque</b></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-g</code></td>
+<td class="org-left">Supprime la <b>marque</b></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x C-x</code></td>
+<td class="org-left">Inverse la <b>marque</b> et le curseur</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-=</code></td>
+<td class="org-left">Sélectionne un mot ou étend la sélection</td>
+</tr>
+</tbody>
+</table>
+<p>
+Noter qu'un enchaînement de <code>C-=</code> permet d'étendre rapidement la zone
+aux entités faisant sens. En effet, <code>C-=</code> s'arrête aux guillemets
+encadrant une chaîne de caractères, aux paramètres ou au corps d'une
+fonction par exemple, ce qui permet de facilement les sélectionner.
+</p>
+</div>
+</div>
+
+<div id="outline-container-org1cb5087" class="outline-3">
+<h3 id="org1cb5087"><span class="section-number-3">4.6</span> Éditer le contenu d'un <i>buffer</i></h3>
+<div class="outline-text-3" id="text-4-6">
+<p>
+Le commandes citées ici concernent essentiellement les <b>modes</b> d'édition
+classiques. Il est possible que pour certains modes les raccourcis ne
+fonctionnent pas ou n'aient simplement pas de sens.  Dans ces modes
+d'édition classiques (modes de saisie par exemple), le clavier
+fonctionne normalement. On précise simplement ici quelques commandes
+usuelles.
+</p>
+
+<p>
+L'action des commandes d'édition décrites ci-dessous est effectuée
+relativement à la position courante du curseur.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>DEL</code></td>
+<td class="org-left"><b>Efface</b> un caractère vers la gauche</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-d</code> ou <code>SUPR</code></td>
+<td class="org-left"><b>Efface</b> le caractère sous le curseur</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left"><code>DEL</code> ou <code>SUPR</code></td>
+<td class="org-left"><b>Efface</b> une zone sélectionnée</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left"><code>C-DEL</code>, <code>M-DEL</code> ou <code>C-w</code></td>
+<td class="org-left"><b>Coupe</b> le mot vers la gauche</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-d</code></td>
+<td class="org-left"><b>Coupe</b> le mot vers la droite</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left"><code>M-0 C-k</code></td>
+<td class="org-left"><b>Coupe</b> jusqu'au début de la ligne</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-k</code></td>
+<td class="org-left"><b>Coupe</b> jusqu'à la fin de la ligne</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left"><code>C-w</code></td>
+<td class="org-left"><b>Coupe</b> une zone sélectionnée</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-w</code></td>
+<td class="org-left"><b>Copie</b> une zone sélectionnée</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-z</code> <i>caractère</i></td>
+<td class="org-left"><b>Coupe</b> jusqu'au prochain caractère <i>caractère</i></td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left"><code>C-_</code> ou <code>C-/</code> ou <code>C-x u</code></td>
+<td class="org-left">Annule la dernière saisie/commande</td>
+</tr>
+</tbody>
+</table>
+<p>
+Noter qu'avec cette configuration d'Emacs, si le caractère à effacer
+est un <b>blanc</b>, tous les blancs suivants dans la direction d'effacement
+sont supprimés.
+</p>
+
+<p>
+Puisqu'on vient d'aborder comment <b>copier</b> ou <b>couper</b> une zone du texte,
+nous allons décrire le <b>coller</b>. Là encore, le vocable Emacs n'est pas
+standard. L'action <b>couper</b> dans Emacs se nomme <b><i>kill</i></b> et <b>coller</b>,
+<b><i>yank</i></b>. On comprend ainsi mieux les choix de lettres <code>k</code> et <code>y</code> dans ce
+contexte.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-y</code></td>
+<td class="org-left"><b>Colle</b> la dernière sélection <b>copiée</b></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-y</code></td>
+<td class="org-left">Remplace le texte collé par la copie précédente</td>
+</tr>
+</tbody>
+</table>
+<p>
+En fait, Emacs conserve toutes les copies en mémoire (<i>kill-ring</i>) et on
+peut donc les utiliser à tout moment. Dans sa version de base,
+parcourir le <i>kill-ring</i> nécessite d'abord un <b>coller</b>. C'est-à-dire qu'il
+faut effectuer <code>C-y</code> and de taper <code>M-y</code> pour le parcourir.
+</p>
+
+<p>
+Cette configuration d'Emacs utilise <code>swiper</code> et le parcours du <i>kill-ring</i>
+est amélioré. En effet, <code>swiper</code> propose l'utilisation directe de <code>M-y</code> et
+plutôt que de remplacer le texte <i>en ligne</i> comme le fait la version de
+base, on y accède dans le <i>minibuffer</i>. On peut alors le parcourir, soit
+en continuant à presser <code>M-y</code>, soit en utilisant les flèches du clavier,
+soit même en entrant les une partie du texte comme pour les
+<a href="#orgf167c7a">recherches</a>.
+</p>
+</div>
+</div>
+
+<div id="outline-container-orgd6c9059" class="outline-3">
+<h3 id="orgd6c9059"><span class="section-number-3">4.7</span> Gestion des <i>buffers</i>, fenêtres et cadres</h3>
+<div class="outline-text-3" id="text-4-7">
+</div>
+<div id="outline-container-orgdf00108" class="outline-4">
+<h4 id="orgdf00108"><span class="section-number-4">4.7.1</span> <i>buffers</i></h4>
+<div class="outline-text-4" id="text-4-7-1">
+<p>
+Dans cette configuration, on utilise le paquet <code>IBuffer</code> à la place du
+mode <code>Buffer</code> classique. Il fonctionne avec les mêmes raccourcis de
+base.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x b</code></td>
+<td class="org-left">Choisit un autre <i>buffer</i></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x C-b</code></td>
+<td class="org-left">Ouvre le mode <code>IBuffer</code></td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x k</code></td>
+<td class="org-left">Choisit un <i>buffer</i> à fermer</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x k RET</code></td>
+<td class="org-left">Ferme le <i>buffer</i> courant</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x left</code></td>
+<td class="org-left">Retourne au <i>buffer</i> précédent</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x right</code></td>
+<td class="org-left">Retourne au <i>buffer</i> suivant</td>
+</tr>
+</tbody>
+</table>
+<p>
+Noter que les raccourcis <code>C-x left</code> et <code>C-x right</code> (où <code>left</code> et <code>right</code>
+désignent les flèches du clavier) sont extrêmement utiles et il est
+important de les mémoriser. On parle bien ici de retrouver le <i>buffer</i>
+précédent ou suivant dans la même fenêtre.
+</p>
+
+<p>
+Lorsqu'on ferme un <i>buffer</i>, si les données n'ont pas été sauvegardées
+Emacs invite l'utilisateur à le faire.
+</p>
+</div>
+</div>
+
+<div id="outline-container-orgbb37bbd" class="outline-4">
+<h4 id="orgbb37bbd"><span class="section-number-4">4.7.2</span> Fenêtres</h4>
+<div class="outline-text-4" id="text-4-7-2">
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x 1</code></td>
+<td class="org-left">Agrandit la fenêtre pour qu'elle occupe tout le cadre</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x 2</code></td>
+<td class="org-left">Découpe la fenêtre courante horizontalement</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x 3</code></td>
+<td class="org-left">Découpe la fenêtre courante verticalement</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x 0</code></td>
+<td class="org-left">Ferme la fenêtre courante</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x o</code></td>
+<td class="org-left">Positionne le curseur dans une autre fenêtre</td>
+</tr>
+</tbody>
+</table>
+
+<p>
+Pour la gestion des fenêtres, on utilise le mode <code>ace-window</code> qui ajoute
+la fonctionnalité suivante. Si plus de deux fenêtres sont actives dans
+le cadre courant, <code>C-x o</code> affiche alors des numéros dans chacune des
+fenêtres. On entre ce numéro pour basculer dans la fenêtre choisie.
+</p>
+</div>
+</div>
+
+<div id="outline-container-orgf41179b" class="outline-4">
+<h4 id="orgf41179b"><span class="section-number-4">4.7.3</span> Cadres (<i>frames</i>)</h4>
+<div class="outline-text-4" id="text-4-7-3">
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x 5 0</code></td>
+<td class="org-left">Ferme le actif cadre</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x 5 1</code></td>
+<td class="org-left">Ferme tous les autres cadres</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x 5 2</code></td>
+<td class="org-left">Crée un nouveau cadre</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgddae73e" class="outline-3">
+<h3 id="orgddae73e"><span class="section-number-3">4.8</span> Fichiers</h3>
+<div class="outline-text-3" id="text-4-8">
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x C-f</code></td>
+<td class="org-left">Recherche incrémentale d'un fichier ou le crée</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x C-s</code></td>
+<td class="org-left">Sauvegarde le <i>buffer</i> courant</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x s</code></td>
+<td class="org-left">Sauvegarde tous les <i>buffers</i></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x C-w</code></td>
+<td class="org-left">Sauvegarde le <i>buffer</i> courant dans un nouveau fichier</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x i</code></td>
+<td class="org-left">Insère le contenu d'un fichier dans le <i>buffer</i></td>
+</tr>
+</tbody>
+</table>
+
+<div style="color: red;" class="mdframed">
+<p>
+<b>IMPORTANT</b>
+</p>
+
+<p>
+Si on souhaite créer un nouveau fichier avec <code>C-x C-f</code> dont le nom est
+une sous chaîne d'un fichier existant, il ne faut pas utiliser <code>RET</code>
+pour valider, mais <code>C-M-j</code>. Utiliser <code>RET</code> valide la recherche.
+</p>
+
+<p>
+Une autre façon de créer le fichier <code>foo</code>, si un fichier correspondant à
+l'expression <i>foo</i> existe (par exemple <code>foobar</code>), consiste à interrompre
+la recherche incrémentale en sélectionnant la <b>zone de saisie</b> avec les
+flèches puis à taper <code>RET</code>.
+</p>
+
+</div>
+
+<p>
+<b>Ouverture de fichiers/répertoirs distants.</b> À noter que cette
+configuration d'Emacs utilise le mode <code>TRAMP</code> pour (<i>Transparent Remote
+Access, Multiple Protocols</i>) qui permet l'ouverture de fichiers à
+distance depuis Emacs.
+</p>
+
+<p>
+Pour que l'édition distante fonctionne, il suffit que la connexion par
+<code>ssh</code> soit autorisée.
+</p>
+
+<p>
+L'intérêt de ce mode est évident puisqu'on n'a pas besoin de
+réinstaller l'environnement Emacs sur cette nouvelle machine, pour
+travailler dans son environnement usuel. Il suffit de pouvoir s'y
+connecter par <code>ssh</code>.
+</p>
+
+<p>
+Pour ouvrir un fichier distant, il suffit d'utiliser le raccourci
+<code>C-x C-f</code>, puis d'écrire dans le <code>minibuffer</code>
+</p>
+<div class="org-src-container">
+<pre class="src src-bash">/sshx:username@hostname:
+</pre>
+</div>
+<p>
+À partir de là, si on presse <code>RET</code>, Emacs ouvrira un <code>dired</code> <i>buffer</i> (c'est
+à dire un buffer permettant de manipuler les fichiers du répertoire
+<code>HOME</code> de l'utilisateur sur la machine distante. On peut aussi utiliser
+<code>TAB</code> pour voir alors la liste des fichiers accessibles dans le
+<i>minibuffer</i>, la complétion fonctionnant comme en local.
+</p>
+
+<p>
+Une fois un fichier ouvert, il est manipulé classiquement dans le
+<i>buffer</i> et seule la sauvegarde du fichier nécessite la connexion.
+</p>
+</div>
+</div>
+
+<div id="outline-container-orgd2d81fe" class="outline-3">
+<h3 id="orgd2d81fe"><span class="section-number-3">4.9</span> Recherche</h3>
+<div class="outline-text-3" id="text-4-9">
+<table id="orgf167c7a" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-s</code></td>
+<td class="org-left">Recherche une chaîne dans le <i>buffer</i> vers le <b>bas</b></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-r</code></td>
+<td class="org-left">Recherche une chaîne dans le <i>buffer</i> vers le <b>haut</b></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-S-s C-w</code></td>
+<td class="org-left">Complète la chaîne à chercher avec le mot courant</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left"><code>C-M-s</code></td>
+<td class="org-left">Recherche une expression régulière vers le <b>bas</b></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-M-r</code></td>
+<td class="org-left">Recherche une expression régulière vers le <b>haut</b></td>
+</tr>
+</tbody>
+</table>
+<p>
+Une fois une occurrence trouvée, on peut poursuivre la recherche vers
+le bas ou vers le haut, en faisant respectivement <code>C-s</code> ou
+<code>C-r</code>. Puisqu'on utilise pas le mode standard de recherche d'Emacs, mais
+le mode <code>swiper</code>, il est possible de naviguer dans le <i>minibuffer</i> avec
+les flèches pour se déplacer d'une occurrence à l'autre.
+</p>
+
+<p>
+Quand la recherche est terminée,
+</p>
+<ul class="org-ul">
+<li>soit on utilise <code>C-g</code> pour revenir où on était quand on a commencé
+la recherche,</li>
+<li>soit <code>RET</code> pour continuer l'édition du <i>buffer</i> à la position de
+l'occurrence.</li>
+</ul>
+
+<p>
+Une autre particularité intéressante de <code>swiper</code> est son utilisation de
+<code>SPC</code> qui sert de joker pendant les saisies. Voir par exemple, la
+figure <a href="#org52db774">5</a>, où on a lancé une recherche puis tapé
+<code>y t x(</code> dans le <i>minibuffer</i>, les lignes correspondantes y sont
+affichées. On peut parcourir cette liste à l'aide des flèches du
+clavier, le <i>buffer</i> de recherche suit l'occurrence sélectionnée.
+</p>
+
+
+<div id="org52db774" class="figure">
+<p><img src="emacs-swiper-search.png" alt="emacs-swiper-search.png" />
+</p>
+<p><span class="figure-number">Figure&nbsp;5&nbsp;: </span>Exemple de recherche avec `swiper`</p>
+</div>
+
+<p>
+Attention si on utilise <code>C-S-s C-w</code>, on n'utilise pas <code>swiper</code> pour la
+recherche, mais l'outil recherche incrémentale classique d'Emacs. Il
+est possible d'ajouter des mots à la recherche en faisant à nouveau
+<code>C-w</code>.
+</p>
+</div>
+</div>
+
+<div id="outline-container-org27c2fc0" class="outline-3">
+<h3 id="org27c2fc0"><span class="section-number-3">4.10</span> Remplacement de texte</h3>
+<div class="outline-text-3" id="text-4-10">
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>M-%</code></td>
+<td class="org-left">Remplacer les occurrences d'une chaîne par une autre</td>
+</tr>
+</tbody>
+</table>
+<p>
+La recherche des chaînes à remplacer se déroule depuis la position du
+curseur vers la fin du <i>buffer</i>.
+</p>
+
+<p>
+Il s'agit d'un mode <b>interactif</b>. Pour chaque occurrence de la chaîne à
+remplacer, Emacs attend une validation.
+</p>
+<ul class="org-ul">
+<li>Pour remplacer l'occurrence trouvée, taper <code>y</code>.</li>
+<li>Pour ne pas la remplacer, presser <code>n</code>.</li>
+<li>Pour interrompre le processus de remplacement, taper <code>q</code> ou <code>C-g</code>.</li>
+<li>Pour tout remplacer, jusqu'à la fin du <i>buffer</i>, taper <code>!</code>.</li>
+</ul>
+<p>
+Noter que le mode de remplacement est <i>intelligent</i> au sens où il
+respecte la case si possible.
+</p>
+
+<p>
+Si on demande le remplacement de <code>foo</code> par <code>bar</code> on obtient les résultats
+suivants.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Chaîne initiale</th>
+<th scope="col" class="org-left">Résultat</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>foobar</code></td>
+<td class="org-left"><code>barbar</code></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>barfooFoobar</code></td>
+<td class="org-left"><code>barbarBarbar</code></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>Foobar</code></td>
+<td class="org-left"><code>Barbar</code></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>FOO</code></td>
+<td class="org-left"><code>BAR</code></td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+
+<div id="outline-container-org3ea1574" class="outline-3">
+<h3 id="org3ea1574"><span class="section-number-3">4.11</span> Répétitions et macros</h3>
+<div class="outline-text-3" id="text-4-11">
+<p>
+Il existe de nombreuses façons d'automatiser des actions dans Emacs.
+Les deux plus simples consistent à répéter une action (<b>macro</b> ou autre)
+ou à créer une macro <i>interactivement</i>.
+</p>
+
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-u</code> <i>nombre</i> <i>commande</i></td>
+<td class="org-left">Exécute la commande <i>commande</i>, <i>nombre</i> de fois</td>
+</tr>
+</tbody>
+</table>
+<p>
+Par exemple, si on tape <code>C-u 10 C-n</code>, on se déplace de 10 lignes vers le
+bas dans le fichier.
+</p>
+
+<p>
+L'autre manière basique est la création et l'utilisation de macros
+<i>clavier</i>.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-(</code></td>
+<td class="org-left">Débute la création d'une macro</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>f3</code></td>
+<td class="org-left">Débute la création d'une macro ou insère le compteur</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-)</code></td>
+<td class="org-left">Termine la définition d'une macro</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x e</code> ou <code>f4</code></td>
+<td class="org-left">Exécute la dernière macro créée</td>
+</tr>
+</tbody>
+</table>
+<p>
+Il est donc très facile de créer et d'exécuter une macro clavier avec
+Emacs. Mais on peut aller facilement un peu plus loin en utilisant les
+commandes suivantes. On rappelle que pour exécuter la commande <i>cmd</i>, il
+suffit de taper <code>M-x cmd</code>.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Commande</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>insert-kbd-macro</code></td>
+<td class="org-left">Écrit le code (<code>ELisp</code>) de la dernière macro définie</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>name-last-kbd-macro</code></td>
+<td class="org-left">Donne un nom à la dernière macro définie</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+
+<div id="outline-container-orga5132b8" class="outline-3">
+<h3 id="orga5132b8"><span class="section-number-3">4.12</span> Complétion</h3>
+<div class="outline-text-3" id="text-4-12">
+<p>
+Emacs propose de nombreux moyens de compléter un mot afin d'accélérer
+la saisie de texte.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>M-/</code></td>
+<td class="org-left">Complète le mot ou propose une nouvelle complétion</td>
+</tr>
+</tbody>
+</table>
+
+<p>
+Les complétions proposées sont les mots qui composent les <i>buffers</i>
+actifs. Cela n'est pas toujours suffisant mais permet d'éviter
+certaines erreurs de frappe.
+</p>
+
+<p>
+En fait, cette configuration utilise <code>company</code> qui est un moteur de
+complétion plus souple et configurable. Le fonctionnement de <code>company</code>
+est très intuitif. En effet pendant la saisie de texte, si des
+complétion sont possibles, une fenêtre <i>pop-up</i> qui les propose apparaît
+(voir figure <a href="#orgbfeea68">6</a>).
+</p>
+
+<div id="orgbfeea68" class="figure">
+<p><img src="emacs-company.png" alt="emacs-company.png" />
+</p>
+<p><span class="figure-number">Figure&nbsp;6&nbsp;: </span><i>Pop-up</i> présentant les complétions possibles</p>
+</div>
+
+<p>
+Pour compléter le texte, plusieurs possibilités sont offertes :
+</p>
+<ul class="org-ul">
+<li>l'utilisation de la touche <code>TAB</code> complète le mot au maximum
+(s'arrêtant après complétion de la partie commune à toutes les
+alternatives). On peut alors continuer la saisie en entrant le
+caractère suivant, et ainsi de suite.</li>
+<li>Une autre possibilité consiste à se déplacer dans le menu <i>pop-up</i>
+pour choisir une entrée.</li>
+</ul>
+<p>
+Si l'entrée n'est pas dans la liste, le <i>pop-up</i> se ferme
+automatiquement lors de la saisie.
+</p>
+
+<p>
+Enfin, il est possible de quitter le <i>pop-up</i> en pressant <code>C-g</code> ou en
+déplaçant le curseur vers la droite ou vers la gauche.
+</p>
+
+<p>
+À noter qu'avec cette configuration, la complétion peut-être beaucoup
+plus évoluée selon le mode majeur actif. Par exemple, les modes de
+programmation proposent une complétion contextuelle. En mode <code>LaTeX</code>,
+les commandes LaTeX (qui commencent par un <code>\</code>) sont proposées (même si
+elles ne sont pas présentes dans les <i>buffers</i> ouverts). De même, en <code>C++</code>
+ou en <code>Python</code> par exemple, la complétion est contextuelle (les types et
+variables accessibles, les fonctions ou fonctions membres sont
+proposées). Dans certains cas, la complétion donne accès à un mode de
+remplissage interactif des arguments de fonctions. On passe alors d'un
+arguments au suivant en tapant <code>TAB</code> et <code>S-TAB</code> pour revenir en arrière.
+</p>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org930a4aa" class="outline-2">
+<h2 id="org930a4aa"><span class="section-number-2">5</span> Modes utiles</h2>
+<div class="outline-text-2" id="text-5">
+<p>
+On présente ici quelques modes particulièrement utiles. La liste
+compète des modes utilisés dans cette configuration (ainsi que
+quelques raccourcis basiques est accessible dans le fichier
+<a href="Configuration.html">Configuration.org</a>.
+</p>
+
+<p>
+De plus, on ne décrit que brièvement les modes en question, une
+description complète étant hors de portée d'un tel document et
+deviendrait inévitablement obsolète.
+</p>
+</div>
+
+<div id="outline-container-orge6aee40" class="outline-3">
+<h3 id="orge6aee40"><span class="section-number-3">5.1</span> Modes utilitaires</h3>
+<div class="outline-text-3" id="text-5-1">
+</div>
+<div id="outline-container-org7f6aa21" class="outline-4">
+<h4 id="org7f6aa21"><span class="section-number-4">5.1.1</span> Flyspell</h4>
+<div class="outline-text-4" id="text-5-1-1">
+<p>
+Il s'agit d'un mode mineur qui vérifie l'orthographe (uniquement
+lexicale) dans un document à la volée.
+</p>
+
+<p>
+Il est actif dans cette configuration pour certains modes. Par défaut
+on a choisi le dictionnaire <i>american</i> qui est finalement souvent le
+plus utile.
+</p>
+
+<p>
+On peut cependant facilement choisir localement le dictionnaire dans
+un <i>buffer</i> en utilisant la commande <code>M-x ispell-change-dictionary</code> et en
+choisissant le dictionnaire adéquate ou en définissant une variable
+locale dans le <i>buffer</i> pour que ce changement intervienne à chaque fois
+que le fichier sera ouvert. Par exemple en LaTeX, on pourra mettre le
+bloc suivant en fin de fichier.
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">% Local Variables&#58;
+% ispell-local-dictionary: <span class="org-string">"francais"</span>
+% End:
+</pre>
+</div>
+<p>
+Pour désactiver le <code>flyspell</code> dans un fichier, on peut utiliser la
+configuration locale. Par exemple en <code>Python</code>, on écrit
+</p>
+<div class="org-src-container">
+<pre class="src src-python"><span class="org-comment-delimiter"># </span><span class="org-comment">Local Variables&#58;</span>
+<span class="org-comment-delimiter"># </span><span class="org-comment">eval: (flyspell-mode -1)</span>
+<span class="org-comment-delimiter"># </span><span class="org-comment">End:</span>
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org40085ae" class="outline-4">
+<h4 id="org40085ae"><span class="section-number-4">5.1.2</span> FlyCheck</h4>
+<div class="outline-text-4" id="text-5-1-2">
+<p>
+Ce mode mineur permet de vérifier la validité du code à la volée. Il
+fonctionne pour les langages LaTeX, <code>C++</code>, <code>Python</code>, les scripts
+<code>shell</code>,&#x2026;
+</p>
+
+<p>
+Généralement, ce mode n'est pas très consommateur de CPU car la
+compilation est très légère. Il est cependant possible de le déactiver
+localement dans un <i>buffer</i>, soit en utilisant la commande
+<code>M-x flycheck-mode</code>, soit en définissant une variable locale. En
+<code>C++</code>, on peut par exemple utiliser
+</p>
+<div class="org-src-container">
+<pre class="src src-C++"><span class="org-comment-delimiter">// </span><span class="org-comment">Local Variables&#58;</span>
+<span class="org-comment-delimiter">// </span><span class="org-comment">eval: (flycheck-mode -1)</span>
+<span class="org-comment-delimiter">// </span><span class="org-comment">End:</span>
+</pre>
+</div>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org5baee2c" class="outline-3">
+<h3 id="org5baee2c"><span class="section-number-3">5.2</span> Interfaces avec <code>git</code></h3>
+<div class="outline-text-3" id="text-5-2">
+<p>
+Emacs possède différentes interfaces à <code>git</code>. Les deux plus abouties
+sont probablement <code>magit</code> et <code>GitGutter</code>. Ces deux modes sont
+complémentaires, <code>GitGutter</code> permet d'afficher dans le <i>buffer</i>
+quelles lignes ont été modifiées et de voir rapidement ce qu'on a
+changé. Quant à <code>magit</code>, c'est une excellent interface à <code>git</code>. En fait le
+mode <code>magit</code> à lui seul justifie l'utilisation d'Emacs.
+</p>
+</div>
+
+<div id="outline-container-orgd0cdab8" class="outline-4">
+<h4 id="orgd0cdab8"><span class="section-number-4">5.2.1</span> GitGutter</h4>
+<div class="outline-text-4" id="text-5-2-1">
+<p>
+Le principe de <code>GitGutter</code> est d'afficher (en marge de gauche) les
+modifications faites au fichier. La mise à jour (pour ne pas
+surcharger l'outil est effectuée à la sauvegarde du fichier).
+</p>
+
+<p>
+Cette configuration interface <code>GitGutter</code> avec <code>Hydra</code> ce qui permet de
+simplifier l'utilisation des raccourcis clavier.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>M-g M-g</code></td>
+<td class="org-left">Ouvre le <i>pop-up</i> <code>Hydra</code> pour <code>GitGutter</code></td>
+</tr>
+</tbody>
+</table>
+
+<p>
+Une fois qu'on a tapé <code>M-g M-g</code> une fenêtre <i>pop-up</i> apparaît et on peut
+alors suivre les indications pour effectuer les commandes de révision
+de la version. C'est-à-dire, qu'on peut parcourir les changements,
+afficher les changements, ou annuler des changements.
+</p>
+
+<p>
+On peut également <b>ajouter</b> des zones particulières pour préparer un
+commit <code>git</code> mais pour ce genre d'opérations, on préférera utiliser
+<code>Magit</code>.
+</p>
+</div>
+</div>
+
+<div id="outline-container-orgd3b7b3e" class="outline-4">
+<h4 id="orgd3b7b3e"><span class="section-number-4">5.2.2</span> Magit</h4>
+<div class="outline-text-4" id="text-5-2-2">
+<p>
+<code>Magit</code> est une superbe interface à <code>git</code> pour Emacs. Encore une fois, il
+ne serait pas raisonnable de tenter de fournir une documentation
+complète du mode dans ce tutoriel. On se contentera de décrire
+simplement quelques éléments de son fonctionnement. Pour une
+description plus précise, on se référera au site <a href="https://magit.vc/">web</a> de <code>Magit</code>. Enfin
+il est important de préciser que l'aide en ligne de <code>Magit</code> est
+simplement excellente.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x g</code></td>
+<td class="org-left">Lance git dans un autre <i>buffer</i></td>
+</tr>
+</tbody>
+</table>
+<p>
+Le <i>buffer</i> <code>Magit</code> (obtenu en tapant donc <code>C-x g</code>) n'est pas un <i>buffer</i>
+d'édition, mais un <i>buffer</i> spécial. Dans ce <i>buffer</i>, les touches du
+clavier sont directement surchargées. On a ainsi accès à des nouveaux
+raccourcis très simples.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci <code>Magit</code></th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>h</code></td>
+<td class="org-left">Affiche l'aide en ligne</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>TAB</code></td>
+<td class="org-left">(dé)plie la zone du curseur</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>RET</code></td>
+<td class="org-left">Affiche la zone du curseur</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>g</code></td>
+<td class="org-left">Rafraîchit le <i>buffer</i></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>s</code></td>
+<td class="org-left"><i>Stage</i> des modifications (<code>git add</code>)</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>u</code></td>
+<td class="org-left"><i>Unstage</i> des modifications</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>c</code></td>
+<td class="org-left">Démarre un <code>git commit</code> (propose plusieures options)</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>F</code></td>
+<td class="org-left">Lance un <code>git pull</code> (propose plusieures options)</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>p</code></td>
+<td class="org-left">Lance un <code>git push</code> (peut proposer plusieures options)</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>k</code></td>
+<td class="org-left">Annule des modifications ou efface un fichier non suivi</td>
+</tr>
+</tbody>
+</table>
+<p>
+On insiste sur le fait qu'on a listé ici que quelques raccourcis des
+plus utiles. L'aide en ligne, accessible donnée par <code>h</code> est très
+complète. Il est par exemple très facile de choisir quelques lignes à
+ajouter (<i>stager</i>) en sélectionnant une zone.
+</p>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgd378205" class="outline-3">
+<h3 id="orgd378205"><span class="section-number-3">5.3</span> Rédaction de documents LaTeX</h3>
+<div class="outline-text-3" id="text-5-3">
+<p>
+La rédaction d'un document LaTeX s'apparente plus à de la
+programmation qu'à de l'édition simple de fichiers. De nombreux outils
+existent maintenant pour éditer des documents LaTeX, mais il est
+également possible de bénéficier de la puissance d'Emacs et de
+nombreuses années d'expériences qui ont permis le développement de
+modes qui permettent une excellente intégration Emacs/LaTeX.
+</p>
+
+<p>
+Avant de décrire les principaux modes, rappelons que cette
+configuration utilise <code>FlyCheck</code> de sorte que les erreurs de syntaxe
+LaTeX sont indiquées à la saisie, ce qui facilite grandement
+l'écriture. Cette configuration propose aussi le mode <code>Preview-LaTeX</code>
+qui ne sera pas abordé dans ce tutoriel.
+</p>
+</div>
+
+<div id="outline-container-orga6ed013" class="outline-4">
+<h4 id="orga6ed013"><span class="section-number-4">5.3.1</span> AUCTeX</h4>
+<div class="outline-text-4" id="text-5-3-1">
+<p>
+<a href="https://www.gnu.org/software/auctex/?lang=fr">AUCTeX</a> est un ensemble de macros Emacs qui permet d'éditer facilement
+(et efficacement) des fichiers LaTeX. C'est le mode qui offre la
+plupart des fonctionnalités utiles à l'édition LaTeX.
+</p>
+
+<p>
+Nous rappelons ici quelques raccourcis de base. Pour aller accéder à
+la documentation complète d'<code>AUCTeX</code>, on peut parcourir l'aide intégrée
+d'Emacs en tapant <code>C-h i</code> et en consultant la rubrique qui lui est
+associée.
+</p>
+</div>
+
+<ol class="org-ol">
+<li><a id="org21364f6"></a>Typographie<br />
+<div class="outline-text-5" id="text-5-3-1-1">
+<p>
+Pour les changements de styles typographiques, tous les raccourcis
+débutent par la séquence <code>C-c C-f</code>.  Le changement de fonte dépend du
+contexte de saisie~: texte ou mathématique. Noter que si on saisit
+<code>C-c C-f</code> suivit de n'importe quel caractère Emacs affiche la liste des
+possibilités.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+
+<col  class="org-left" />
+
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourcis</th>
+<th scope="col" class="org-left">Style</th>
+<th scope="col" class="org-left">Comm. (texte)</th>
+<th scope="col" class="org-left">Style</th>
+<th scope="col" class="org-left">Comm. (math)</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-c C-f C-a</code></td>
+<td class="org-left">--</td>
+<td class="org-left">--</td>
+<td class="org-left">calligraphique</td>
+<td class="org-left"><code>\mathcal</code></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-f C-b</code></td>
+<td class="org-left">gras</td>
+<td class="org-left"><code>\textbf</code></td>
+<td class="org-left">gras</td>
+<td class="org-left"><code>\mathbf</code></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-f C-c</code></td>
+<td class="org-left">petites capitales</td>
+<td class="org-left"><code>\textsc</code></td>
+<td class="org-left">--</td>
+<td class="org-left">--</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-f C-e</code></td>
+<td class="org-left">emphase</td>
+<td class="org-left"><code>\emph</code></td>
+<td class="org-left">emphase</td>
+<td class="org-left"><code>\emph</code></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-f C-f</code></td>
+<td class="org-left">sans serif</td>
+<td class="org-left"><code>\textsf</code></td>
+<td class="org-left">sans serif</td>
+<td class="org-left"><code>\mathsf</code></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-f TAB</code></td>
+<td class="org-left">italique</td>
+<td class="org-left"><code>\textit</code></td>
+<td class="org-left">italique</td>
+<td class="org-left"><code>\mathit</code></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-f C-n</code></td>
+<td class="org-left">normal</td>
+<td class="org-left"><code>\textnormal</code></td>
+<td class="org-left">normal</td>
+<td class="org-left"><code>\mathnormal</code></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-f C-r</code></td>
+<td class="org-left">roman</td>
+<td class="org-left"><code>\textrm</code></td>
+<td class="org-left">roman</td>
+<td class="org-left"><code>\mathrm</code></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-f C-s</code></td>
+<td class="org-left">penché</td>
+<td class="org-left"><code>\textsl</code></td>
+<td class="org-left">symbole</td>
+<td class="org-left"><code>\mathbb</code></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-f C-t</code></td>
+<td class="org-left">machine à écrire</td>
+<td class="org-left"><code>\texttt</code></td>
+<td class="org-left">machine à écrire</td>
+<td class="org-left"><code>\mathtt</code></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-f C-d</code></td>
+<td class="org-left">supprime le style</td>
+<td class="org-left">--</td>
+<td class="org-left">supprime le style</td>
+<td class="org-left">--</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-f C-k</code></td>
+<td class="org-left">--</td>
+<td class="org-left">--</td>
+<td class="org-left">eufrak</td>
+<td class="org-left"><code>\mathfrak</code></td>
+</tr>
+</tbody>
+</table>
+<p>
+Noter que si une région est sélectionnée, la commande est appliquée à
+la région, sinon, le curseur est positionné entre les accolades.
+</p>
+
+<p>
+Enfin, si on préfixe les raccourcis précédents par <code>C-u</code> alors, le style
+est remplacé par le style demandé. Par exemple, si on avait le texte
+suivant
+</p>
+<div class="org-src-container">
+<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\emph</span></span>{<span class="org-font-latex-italic">Un texte</span>}
+</pre>
+</div>
+<p>
+si on utilise la commande <code>C-u C-c C-f C-b</code>, il sera transformé en
+</p>
+<div class="org-src-container">
+<pre class="src src-latex"><span class="org-font-latex-sedate"><span class="org-keyword">\textbf</span></span>{<span class="org-font-latex-bold">Un texte</span>}
+</pre>
+</div>
+</div>
+</li>
+
+<li><a id="org273cd7a"></a>Sections<br />
+<div class="outline-text-5" id="text-5-3-1-2">
+<p>
+AUCTeX propose moyen de créer les éléments structurants du document.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-c C-s</code></td>
+<td class="org-left">Crée une section</td>
+</tr>
+</tbody>
+</table>
+<p>
+Une fois ce raccourci utilisé, une interaction dans le <i>minibuffer</i>
+permet d'entrer son titre et éventuellement le label à lui attribuer.
+Comme toujours en LaTeX, il est recommandé d'indiquer des noms
+explicites. On préférera utiliser le caractère <code>-</code> plutôt que <code>_</code> pour
+éventuellement séparer les termes qui composent le label.
+</p>
+</div>
+</li>
+
+<li><a id="orgb485cdc"></a>Environnements<br />
+<div class="outline-text-5" id="text-5-3-1-3">
+<p>
+De la même manière, on écrit des environnements simplement en
+utilisant des raccourcis.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-c C-e</code></td>
+<td class="org-left">Ajoute un environnement</td>
+</tr>
+</tbody>
+</table>
+<p>
+Ici encore, quand le raccourci a été utilisé, les environnements
+possibles sont proposés dans le <i>minibuffer</i> et éventuellement, on
+propose de saisir un label.
+</p>
+
+<p>
+Comme dans le cas des changements typographiques, si une région était
+sélectionnée, les balises <code>begin</code> et <code>end</code> entourent la zone. Sinon, le
+curseur est placé entre les balises.
+</p>
+</div>
+</li>
+
+<li><a id="orge51e1bd"></a>Compilation et visualisation<br />
+<div class="outline-text-5" id="text-5-3-1-4">
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-c C-c</code> ou <code>C-c C-z</code></td>
+<td class="org-left">Accède à une commande LaTeX</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-k</code></td>
+<td class="org-left">Tue le processus LaTeX actif</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-l</code></td>
+<td class="org-left">Affiche la sortie de compilation</td>
+</tr>
+</tbody>
+</table>
+<p>
+En fait, lorsqu'on invoque <code>C-c C-c</code> ou <code>C-c C-z</code>, la liste des commandes
+proposées comprend la compilation du document, la compilation de la
+bibliographie, la visualisation du document produit,&#x2026; Par défaut
+<code>AUCTeX</code> propose l'action qu'il juge naturelle. Par exemple, si le
+document n'a pas besoin d'être recompilé il proposera sa
+visualisation.
+</p>
+
+<p>
+Cette configuration utilise <code>pdf-tools</code> pour visualiser les documents
+produits. Cela a plusieurs avantages, les <code>pdf</code> sont affichés
+directement dans Emacs (dans une nouvelle <b>fenêtre</b>, mais on peut
+évidemment utiliser un autre <b>cadre</b>. De plus, on utilise <code>synctex</code> qui
+permet de synchroniser le source <code>tex</code> et le <code>pdf</code> produit. Ainsi si on
+utilise <code>C-mouse1</code> ou le double-clic (<code>mouse1 mouse1</code>) sur une zone du
+document <code>pdf</code> produit, Emacs positionne le curseur sur la partie du
+source LaTeX associé. De même, on peut visualiser la zone du document
+<code>pdf</code> correspondant au curseur dans les sources en utilisant le
+raccourci <code>C-c C-g</code>. On rappelle dans le tableau suivant quelques
+raccourcis utiles pour la visualisation.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left">dans les sources</td>
+<td class="org-left">&#xa0;</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-a</code></td>
+<td class="org-left">Génère et affiche le <code>pdf</code> (enchaîne toutes les commandes)</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-v</code></td>
+<td class="org-left">Affiche le <code>pdf</code> s'il existe</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-g</code></td>
+<td class="org-left">Synchronise la vue du <code>pdf</code> avec les sources au curseur</td>
+</tr>
+</tbody>
+<tbody>
+<tr>
+<td class="org-left">dans le <code>pdf</code></td>
+<td class="org-left">&#xa0;</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-mouse1</code> (ou double clic)</td>
+<td class="org-left">Positionne le curseur dans les sources correspondantes</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>PageUp</code></td>
+<td class="org-left">Aller à la page précédente</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>PageDown</code></td>
+<td class="org-left">Aller à la page suivante</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>SPC</code></td>
+<td class="org-left">Avance dans le document</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>DEL</code></td>
+<td class="org-left">Recule dans le document</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>B</code></td>
+<td class="org-left">Retourne en arrière (page précédemment visité)</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>N</code></td>
+<td class="org-left">Retourne en avant (inverse de <code>B</code>)</td>
+</tr>
+</tbody>
+</table>
+</div>
+</li>
+</ol>
+</div>
+
+<div id="outline-container-orgf4918cd" class="outline-4">
+<h4 id="orgf4918cd"><span class="section-number-4">5.3.2</span> RefTeX</h4>
+<div class="outline-text-4" id="text-5-3-2">
+<p>
+<code>AUCTeX</code> est distribué avec <code>RefTeX</code> qui est un mode mineur qui permet une
+gestion simplifiée des références. Que ce soient des références à des
+équations, des figures, des tables ou des citations
+bibliographiques. <code>RefTeX</code> analyse le fichier source (ou les fichiers si
+nécessaire) pour déterminer les références possibles.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-c (</code></td>
+<td class="org-left">Ajoute un label</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c )</code></td>
+<td class="org-left">Crée une référence</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c [</code></td>
+<td class="org-left">Insère une référence bibliographique</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c /</code></td>
+<td class="org-left">Ajoute une référence à un index ou un glossaire</td>
+</tr>
+</tbody>
+</table>
+<p>
+Une fois la commande activée, l'interaction est classique et se
+déroule soit dans le <i>minibuffer</i> soit dans un <i>buffer</i> annexe.
+</p>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org2ac1179" class="outline-3">
+<h3 id="org2ac1179"><span class="section-number-3">5.4</span> Programmation</h3>
+<div class="outline-text-3" id="text-5-4">
+<p>
+On l'a déjà dit, cette configuration d'Emacs propose par défaut
+l'utilisation de <code>flycheck</code> qui active une compilation (légère) à la
+volée du <i>buffer</i>, ce qui aide à rapidement trouver les erreurs de
+syntaxe.
+</p>
+
+<p>
+La plupart des modes de programmation nécessitent l'installation
+d'outils annexes pour fonctionner. On se reportera donc au fichier
+<a href="Installation.html">Installation.org</a> pour des détails à ce sujet.
+</p>
+</div>
+
+<div id="outline-container-orgd602f40" class="outline-4">
+<h4 id="orgd602f40"><span class="section-number-4">5.4.1</span> Python</h4>
+<div class="outline-text-4" id="text-5-4-1">
+<p>
+On utilise le paquet <code>jedi</code> qui gère la complétion dans Emacs pour
+<code>Python</code>. On se reportera donc à la documentation en ligne
+<a href="http://tkf.github.io/emacs-jedi/latest/">http://tkf.github.io/emacs-jedi/latest/</a>, pour plus d'informations.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-c C-c</code></td>
+<td class="org-left">Exécute le script</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-z</code></td>
+<td class="org-left">Passe du <i>buffer</i> du code à la console d'exécution ou inversement</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>S-TAB</code> ou <code>backtab</code></td>
+<td class="org-left">Supprime une indentation</td>
+</tr>
+</tbody>
+</table>
+
+<p>
+Il existe également, une interface à <code>Jupyter</code>, mais cette dernière ne
+fait pas partie de cette configuration.
+</p>
+
+<p>
+Enfin, si on exécute les scripts dans Emacs <code>C-c C-c</code>, le terminal
+occupe un <i>buffer</i> interactif (c'est-à-dire qu'on peut y entrer des
+commandes comme dans n'importe quel terminal), où il est possible,
+comme dans les <i>buffers</i> de compilation de cliquer sur les lignes
+d'erreur pour positionner le curseur dans la ligne correspondante des
+sources.
+</p>
+</div>
+</div>
+
+<div id="outline-container-orgb2d0921" class="outline-4">
+<h4 id="orgb2d0921"><span class="section-number-4">5.4.2</span> C++</h4>
+<div class="outline-text-4" id="text-5-4-2">
+<p>
+Pour la complétion et la correction syntaxique à la volée, on utilise
+le paquet <code>irony</code>. Il est nécessaire pour cette fonctionnalité de
+configurer correctement le système et en particulier de disposer d'une
+version adaptée du compilateur <code>clang</code> (voir les consignes
+d'installation).
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-c C-c</code></td>
+<td class="org-left">Affiche l'invite de compilation dans le <i>minibuffer</i></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c `</code></td>
+<td class="org-left">Positionne le curseur à la première erreur de compilation</td>
+</tr>
+</tbody>
+</table>
+
+<p>
+Le <i>buffer</i> de compilation est interactif : si on clique sur un message
+d'erreur, les sources sont ouvertes et le curseur est positionné à
+l'endroit correspondant. Il est donc très pratique de compiler dans
+Emacs plutôt que dans un terminal.
+</p>
+
+<p>
+On notera également que si on laisse le curseur positionné sur un mot
+du code source, le <i>minibuffer</i> affiche des informations concernant le
+type ou l'objet en question.
+</p>
+</div>
+</div>
+
+<div id="outline-container-org09db0b4" class="outline-4">
+<h4 id="org09db0b4"><span class="section-number-4">5.4.3</span> Tags</h4>
+<div class="outline-text-4" id="text-5-4-3">
+<p>
+Les <i>tags</i> (ou étiquettes en français) sont utilisés pour parcourir
+facilement les sources d'un code. Cette installation est configurée
+pour fonctionner avec <code>GNU Global</code> (voir
+<a href="http://www.gnu.org/software/global/">http://www.gnu.org/software/global/</a>) qui indexe et exploite des bases
+de <i>tags</i>. Une telle base est une base de données qui répertorie des
+informations sur les sources du code : quel est le type d'une
+variable, où est elle déclarée ou utilisée ? Quel est le fichier qui
+définit une classe, un type, etc&#x2026; L'utilisation d'une telle base
+permet donc de facilement accéder à de nombreuses informations sans
+avoir à faire de recherches par ailleurs.
+</p>
+
+<p>
+Comme cette configuration utilise les <code>ggtags</code> et repose donc sur le
+logiciel tiers <code>GNU Global</code>, il convient de l'installer. Pour cela, on
+se référera au fichier <a href="Installation.html">Installation.org</a>.
+</p>
+
+<p>
+Avant de rappeler quelques raccourcis usuels de ce mode, rappelons
+qu'à la première utilisation des <code>ggtags</code> pour un code, la base sera
+créée.
+</p>
+
+<p>
+Enfin précisons que les <i>tags</i> ne sont qu'une base de données
+d'occurrences de textes et même si elle est plutôt efficace, il est
+parfois possible que les références ne correspondent pas au même
+objet.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>M-.</code></td>
+<td class="org-left">Cherche un <i>tag</i></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-M-.</code></td>
+<td class="org-left">Cherche les <i>tags</i> qui correspondent à une expression régulière</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-,</code></td>
+<td class="org-left">Continue à chercher un <i>tag</i></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c M-%</code></td>
+<td class="org-left">Remplace un <i>tag</i> par une nouvelle chaîne dans tout le code</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c M-g</code></td>
+<td class="org-left">Lance un <code>grep</code> dans la base des <i>tags</i></td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c M-f</code></td>
+<td class="org-left">Ouvre un fichier référencé dans la base des <i>tags</i></td>
+</tr>
+</tbody>
+</table>
+<p>
+Dans ce contexte, on rappelle que pour revenir dans le <i>buffer</i> il est
+conseillé d'utiliser les raccourcis de navigation classiques :
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x left</code></td>
+<td class="org-left">Retourne au <i>buffer</i> précédent</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-x right</code></td>
+<td class="org-left">Retourne au <i>buffer</i> suivant</td>
+</tr>
+</tbody>
+</table>
+</div>
+</div>
+
+<div id="outline-container-org44ba3b7" class="outline-4">
+<h4 id="org44ba3b7"><span class="section-number-4">5.4.4</span> YASnippet</h4>
+<div class="outline-text-4" id="text-5-4-4">
+<p>
+Il n'est pas envisageable d'écrire un tutoriel Emacs sans évoquer les
+<code>snippets</code>. Commençons donc par rappeler de quoi il s'agit. Les <code>snippets</code>
+(littéralement <b>fragments</b> en français) sont des patrons (<i>template</i>) 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 <code>snippets</code> qui
+permettent souvent de n'écrire que les zones du code faisant
+sens. <code>YASnippet</code> s'est imposé comme la version la plus aboutie et est
+maintenant la plus utilisée.
+</p>
+
+<p>
+Il faut bien intégrer le fait que les <code>snippets</code> 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.
+</p>
+
+<p>
+Notons également que <code>YASnippet</code> est livré avec une collection
+impressionnante de modèles. Ces patrons sont accessibles selon le
+contexte d'édition : les patrons utiles au <code>Python</code>, à la rédaction
+LaTeX ou au <code>C++</code>, 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 <code>YASnippet</code> ou en
+tapant la commande <code>M-x yas-describe-tables</code> qui ouvre un buffer
+contenant tous les <code>snippets</code> disponibles.
+</p>
+
+<p>
+Un autre avantage de <code>YASnippet</code> est qu'il est très facile d'ajouter de
+nouveaux modèles, mais nous ne décrivons pas la procédure ici (voir
+<a href="http://joaotavora.github.io/yasnippet">http://joaotavora.github.io/yasnippet</a> pour les détails).
+</p>
+
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-RET</code></td>
+<td class="org-left">Développe le modèle</td>
+</tr>
+</tbody>
+</table>
+<p>
+Dans cette configuration, on a désactivé le raccourci usuel <del><code>TAB</code></del>, qui
+pouvait avoir des effets inattendus et désagréables, au profit de
+<code>C RET</code>. En effet, l'effet principal de <code>TAB</code> est l'indentation du code,
+mais si le <i>mini-mode</i> de <code>YASnippet</code> 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.
+</p>
+
+<p>
+On termine cette courte introduction en donnant un exemple
+d'utilisation en <code>C++</code>. Si on écrit <code>cls</code> et si on utilise immédiatement
+le raccourci <code>C-RET</code>, le modèle (simple) de <b>classe</b> est utilisé. On
+obtient alors
+</p>
+<div class="org-src-container">
+<pre class="src src-C++"><span class="org-keyword">class</span> <span class="org-type">Name</span>
+<span class="org-rainbow-delimiters-depth-1">{</span>
+<span class="org-keyword">public</span>:
+  <span class="org-function-name">Name</span><span class="org-rainbow-delimiters-depth-2">()</span>;
+  <span class="org-keyword">virtual</span> ~<span class="org-function-name">Name</span><span class="org-rainbow-delimiters-depth-2">()</span>;
+<span class="org-rainbow-delimiters-depth-1">}</span>;
+</pre>
+</div>
+<p>
+Le curseur est alors positionné sur le premier <code>Name</code> 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 <code>Tableau</code> (une seule fois), on obtient
+</p>
+<div class="org-src-container">
+<pre class="src src-C++"><span class="org-keyword">class</span> <span class="org-type">Tableau</span>
+<span class="org-rainbow-delimiters-depth-1">{</span>
+<span class="org-keyword">public</span>:
+  <span class="org-function-name">Tableau</span><span class="org-rainbow-delimiters-depth-2">()</span>;
+  <span class="org-keyword">virtual</span> ~<span class="org-function-name">Tableau</span><span class="org-rainbow-delimiters-depth-2">()</span>;
+<span class="org-rainbow-delimiters-depth-1">}</span>;
+</pre>
+</div>
+<p>
+On n'a modifié qu'un champ pour obtenir ce résultat. <code>TAB</code> permet de
+passer au champ suivant s'il y en a d'autres et <code>S-TAB</code> (ou <code>backtab</code>)
+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.
+</p>
+<pre class="example">
+c l s C-RET T a b l e a u
+</pre>
+<p>
+Cet exemple simple illustre bien l'efficacité de l'approche.
+</p>
+</div>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org6a3e84f" class="outline-2">
+<h2 id="org6a3e84f"><span class="section-number-2">6</span> Pour aller plus loin</h2>
+<div class="outline-text-2" id="text-6">
+</div>
+<div id="outline-container-orgc162f55" class="outline-3">
+<h3 id="orgc162f55"><span class="section-number-3">6.1</span> Org-mode</h3>
+<div class="outline-text-3" id="text-6-1">
+<p>
+Une fois encore, il est inenvisageable de faire un tour complet de ce
+mode dans un tel document. On va donc seulement en tracer les grandes
+lignes et décrire certaines de ses fonctionnalités. Pour vraiment en
+appréhender les possibilités, il faut consulter les multiples
+ressources disponibles sur le net, et en particulier des vidéos de
+démonstrations.
+</p>
+
+<p>
+Initialement, <code>Org-mode</code> est un outil conçu pour la gestion, le suivi et
+l'archivage de tâches personnelles. La gestion d'agenda n'en est plus
+aujourd'hui qu'un aspect mineur. Son intégration à Emacs est
+extrêmement poussée<sup><a id="fnr.1" class="footref" href="#fn.1">1</a></sup> et tire profit de l'interopérabilité des
+différents modes d'Emacs. Il bénéficie donc d'une extensibilité assez
+spectaculaire. En fait, <code>Org-mode</code> définit en fait un véritable langage
+de (méta-)programmation et utilise son propre format de fichier <code>.org</code>.
+</p>
+
+<p>
+Même si un document <code>Org-mode</code> est <b>lisible</b> avec n'importe quel éditeur
+de texte, de nombreux rendus sont possibles : <code>Markdown</code>, texte (ASCII
+ou UTF-8), <code>PDF</code> (générés en LaTeX), <code>HTML</code>, <code>OpenDocument</code>,&#x2026; On peut
+publier des <i>blogs</i>, générer des présentations (<code>Beamer</code> ou autres). Et
+<code>Org-mode</code> permet beaucoup d'autres choses encore.
+</p>
+
+<p>
+L'une des forces d'<code>Org-mode</code> est la possibilité d'insérer des blocs de
+code (dans de nombreux langages) directement dans le
+document. <code>Org-mode</code> peut alors les évaluer en les compilant ou en les
+exécutant par exemple. Dans un même document, on peut par exemple
+utiliser des programmes <code>C++</code> ou <code>Python</code>, des script <code>shell</code>, des commandes
+LaTeX, des instructions <code>gnuplot</code>, tracer des graphes ou des diagrammes
+avec <code>dot</code>,&#x2026; <code>Org-mode</code> permet en plus de faire communiquer ces
+différents programmes. Dans un document <code>Org-mode</code>, il est possible
+d'afficher des images en ligne. On peut aussi créer des tableaux
+dynamiques (provenant d'évaluations de blocs de code par exemple) ou
+statiques. On peut écrire des formules mathématiques en ligne, c'est à
+dire sans définir des zones de code source, en utilisant directement
+des formules LaTeX (<code>$(a+b)^2 = a^2+2ab+b^2$</code> est interprété directement
+\((a+b)^2 = a^2+2ab+b^2\)),&#x2026;
+</p>
+
+<p>
+Ce document (et ce n'est qu'un exemple <b>très</b> simple) est rédigé en
+<code>Org-mode.</code> C'est aussi le cas du fichier de configuration
+<a href="Configuration.html">(Configuration.org</a>). Cette pratique est devenue un standard de nos
+jours. On préfère écrire une configuration en <code>Org-mode</code> plutôt que
+directement en <code>Elisp</code>.  Cela donne une véritable structure au document
+et donc, en améliore beaucoup la lisibilité. Au delà, on peut même
+exporter le contenu (en <code>HTML</code> par exemple) pour obtenir une véritable
+documentation de la configuration. Notons aussi que <code>Gitlab</code> et <code>Github</code>
+affichent raisonnablement le contenu des fichiers <code>.org</code> (sans toute
+fois interpréter les zones de code ou les équations LaTeX). C'est
+commode pour partager une configuration.
+</p>
+
+<p>
+Dans le cas d'un fichier de configuration, ces blocs sont
+principalement des morceaux de codes <code>ELisp</code> dont l'évaluation modifie
+le comportement d'Emacs. Mais, en général, il est aussi possible de
+récupérer le résultat de l'exécution et de l'insérer automatiquement
+dans le document. De ce fait, le document est extrêmement
+dynamique. La rédaction de documentations ou de tutoriels par exemple
+est donc grandement facilité, puisqu'Emacs vérifie par l'évaluation du
+document <code>Org-mode</code> que tous les morceaux de code sont valides et met à
+jour les résultats.
+</p>
+
+<p>
+Par certains aspects, <code>Org-mode</code> est similaire à certains langages de
+description de contenus comme par exemple <code>Markdown</code>, puisqu'il est très
+simple de définir des hiérarchies de sections, des listes, des
+hyperliens, de créer des tableaux,&#x2026;
+</p>
+
+<p>
+Par exemple pour créer une section de niveau \(n\), on débute une ligne
+avec \(n\) étoiles (\(\star\)) consécutives suivies d'un espace et du
+titre. La création d'une liste est tout aussi simple, il suffit par
+exemple de commencer les lignes par un tiret (\(-\)), l'indentation
+définit le niveau de l'item.
+</p>
+
+<p>
+On termine cette très brève introduction par un rappel de quelques
+raccourcis basiques.
+</p>
+
+<p>
+Les raccourcis suivants fonctionnent pour les sections et les
+listes. Les mêmes raccourcis ont des effets voisins dans les tableaux,
+voir plus bas.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>M-up</code></td>
+<td class="org-left">Échange l'élément avec l'élément précédent (de même niveau)</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-down</code></td>
+<td class="org-left">Échange l'élément avec l'élément suivant (de même niveau )</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-left</code></td>
+<td class="org-left">Diminue le niveau de l'élément (plus haut dans la hiérarchie)</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-right</code></td>
+<td class="org-left">Augmente le niveau de l'élément (plus bas dans la hiérarchie)</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>TAB</code></td>
+<td class="org-left">Plie ou déplie le contenu</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>S-left</code> ou <code>S-right</code></td>
+<td class="org-left">Modifie le statut de l'élément (<code>TODO</code>, <code>DONE</code>,&#x2026;)</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-RET</code></td>
+<td class="org-left">Crée un élément de même niveau que l'élément courant</td>
+</tr>
+</tbody>
+</table>
+<p>
+Dans le cas des listes, <code>S-left</code> et <code>S-right</code> modifient le type d'élément
+de la liste (et des éléments de même niveau), on peut ainsi obtenir
+une numérotation par exemple.
+</p>
+
+<p>
+Enfin, si on utilise <code>M-RET</code> au milieu d'un élément, il est décomposé en
+deux éléments, le contenu reste associé à la seconde partie de l'élément.
+</p>
+
+<p>
+Insistons sur le fait qu'en cas de déplacement d'un élément, son
+contenu (les sous items en particulier) lui restent attachés. Dans le
+cas des listes numérotées, la numérotation est maintenue à jour par
+toutes les opérations.
+</p>
+
+<p>
+Dans le cas des tableaux, comme on l'a dit, ces raccourcis sont
+réutilisés avec des effets très voisins
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>M-up</code></td>
+<td class="org-left">Échange la ligne avec la ligne précédente</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-down</code></td>
+<td class="org-left">Échange la ligne avec la ligne suivante</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-left</code></td>
+<td class="org-left">Échange la colonne avec la colonne précédente</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>M-right</code></td>
+<td class="org-left">Échange la colonne avec la colonne suivante</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>TAB</code></td>
+<td class="org-left">Positionne le curseur sur la cellule suivante (ajoute une ligne si nécessaire)</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>S-TAB</code> ou <code>backtab</code></td>
+<td class="org-left">Positionne le curseur sur la cellule précédente</td>
+</tr>
+</tbody>
+</table>
+<p>
+En fin de ligne (après le dernier <code>|</code>), si on presse <code>TAB</code>, alors le
+tableau est réaligné. Il existe de nombreux autres raccourcis pour les
+tableaux, (suppression/ajout de lignes ou de colonnes) mais comme
+certains sont dangereux nous ne les rappelons pas ici. Ces raccourcis
+sont rappelés dans le menu <code>Tbl</code>.
+</p>
+
+<p>
+Nous terminons cette description des tableaux en donnant <b>un</b> moyen de
+les créer. Il est extrêmement simple. Il suffit de commencer une ligne
+par un <code>|</code> puis de séparer les colonnes par d'autres <code>|</code>. Pour ajouter une
+ligne de séparation, il suffit de commencer une ligne par la séquence
+<code>|-</code> puis de presser <code>TAB</code> n'importe où dans la zone du tableau.
+</p>
+
+<p>
+Finalement, on donne quelques raccourcis plus généraux pour
+<code>Org-mode</code>. On ne décris pas ici comment générer des zones de code, ni
+autres comportements dynamiques. Les fonctionnalités basiques sont
+accessibles dans le menu, mais il est préférable pour cela de
+consulter de vraies documentations.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-c C-c</code></td>
+<td class="org-left">Évalue une zone de code et met à jour le résultat</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-v C-b</code></td>
+<td class="org-left">Évalue tout le document et met à jour les résultats</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c C-e</code></td>
+<td class="org-left">Lance le menu <code>Hydra</code> pour déclencher les exports</td>
+</tr>
+
+<tr>
+<td class="org-left"><code>C-c '</code></td>
+<td class="org-left">Édite une zone de code dans le mode approprié</td>
+</tr>
+</tbody>
+</table>
+<p>
+Ce dernier raccourci : <code>C-c '</code> est <b>extrêmement</b> important pour la
+modification des blocs de codes. Il faut éviter de modifier
+directement ces éléments avec le mode <code>Org</code>.
+</p>
+</div>
+</div>
+
+<div id="outline-container-org24a67a3" class="outline-3">
+<h3 id="org24a67a3"><span class="section-number-3">6.2</span> Pliage et dépliage avec <code>narrow-or-widen-dwim</code></h3>
+<div class="outline-text-3" id="text-6-2">
+<p>
+Emacs propose des fonctions de (dé)-pliage de zones. La dénomination
+pour ces fonctionnalités dans Emacs est <i>narrowing</i> (pliage) et <i>widening</i>
+(dépliage).
+</p>
+
+<p>
+Il s'agit d'un outil très puissant pour l'édition avec Emacs. Son
+fonctionnement n'est pas de cacher des zones de texte comme le
+proposent de nombreux outils, mais de modifier le <i>buffer</i> pour qu'il ne
+contienne plus que la région sélectionnée. Le <i>buffer</i> <b>n'est donc plus</b>
+le reflet du fichier édité, mais simplement le reflet de la zone.
+</p>
+
+<p>
+Les modifications apportées à la zone sont donc bien sauvées dans le
+fichier, mais on ne peut plus modifier le reste du fichier. C'est donc
+très pratique lorsqu'on veut appliquer une série de modifications sans
+avoir à se préoccuper de leur impact hors de la région. Un bon exemple
+est l'utilisation d'une macro clavier.
+</p>
+
+<p>
+Dans cette configuration, on utilise <code>narrow-or-widen-dwim</code> qui
+simplifie la sélection des régions à éditer, c'est l'effet <i>dwin</i> (<i>Do
+What I Mean</i>).
+Un seul raccourci est nécessaire à l'activation du pliage ou du
+dépliage d'une zone.
+</p>
+<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
+
+
+<colgroup>
+<col  class="org-left" />
+
+<col  class="org-left" />
+</colgroup>
+<thead>
+<tr>
+<th scope="col" class="org-left">Raccourci</th>
+<th scope="col" class="org-left">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="org-left"><code>C-x n</code></td>
+<td class="org-left">Active ou déactive le pliage</td>
+</tr>
+</tbody>
+</table>
+<p>
+Là où ce mode est intelligent c'est en sa façon de reconnaître quelle
+est la région qui sera éditée. En fait, si une région est sélectionnée
+c'est cette région qui sera considérée, mais sinon, c'est le
+paragraphe, la section ou la fonction courante (dans un mode de
+programmation) même qui occupera tout le <i>buffer</i>.
+</p>
+</div>
+</div>
+
+<div id="outline-container-orgb8c74bc" class="outline-3">
+<h3 id="orgb8c74bc"><span class="section-number-3">6.3</span> Autres modes installés</h3>
+<div class="outline-text-3" id="text-6-3">
+<p>
+En dehors des modes internes fournis avec Emacs, on pourra consulter
+le fichier de configuration (<a href="Configuration.html">Configuration.org</a>) où sont décrites
+succinctement des modes plutôt utiles comme <code>WGrep</code>, <code>iedit</code>, <code>Dumb Jump</code>,
+<code>AutoYASnippet</code>, <code>Avy</code>, <code>projectile</code>, &#x2026;
+</p>
+
+<p>
+Ils ne sont pas abordés dans ce tutoriel.
+</p>
+</div>
+</div>
+
+<div id="outline-container-orgc0b25c3" class="outline-3">
+<h3 id="orgc0b25c3"><span class="section-number-3">6.4</span> Personnalisation</h3>
+<div class="outline-text-3" id="text-6-4">
+</div>
+<div id="outline-container-orga7d01e4" class="outline-4">
+<h4 id="orga7d01e4"><span class="section-number-4">6.4.1</span> custom.el</h4>
+<div class="outline-text-4" id="text-6-4-1">
+<p>
+Même si on souhaite pouvoir suivre les développements de cette
+configuration et les mettre à jour avec <code>git</code>, il est possible de la
+personnaliser un peu.
+</p>
+
+<p>
+Pour cela, les modifications doivent être apportées au fichier
+<code>~/.emacs.d/custom.el</code>. En fait, ce fichier particulier est ignoré
+par <code>git</code>, mais il est généré au lancement d'Emacs s'il n'existe pas.
+</p>
+
+<p>
+Une façon de <b>supprimer</b> toutes les personnalisations est donc de
+l'effacer puis de relancer Emacs. Si des personnalisations sont
+importantes, il convient donc de les sauvegarder ailleurs.
+</p>
+</div>
+</div>
+
+<div id="outline-container-orgda154fe" class="outline-4">
+<h4 id="orgda154fe"><span class="section-number-4">6.4.2</span> Emacs lisp</h4>
+<div class="outline-text-4" id="text-6-4-2">
+<p>
+Rappelons le, Emacs n'est pas un simple éditeur. C'est en fait une
+véritable machine interprétant le langage <code>ELisp</code> dont des
+fonctionnalités sont adaptées à l'édition de sources.
+</p>
+
+<p>
+Donc pour une personnalisation (extrêmement) poussée, ou pour
+développer de nouveaux modes, il est indispensable de connaître
+suffisamment <code>ELisp</code>. Évidemment, on ne couvre pas cet aspect des choses
+dans ce document. Il faudra donc se référer aux nombreuses
+documentations disponibles sur internet.
+</p>
+
+<p>
+Voici quelques références, classées par ordre croissant de complexité.
+</p>
+<ul class="org-ul">
+<li><a href="https://github.com/chrisdone/elisp-guide">Un guide rapide des bases d'ELisp</a></li>
+<li><a href="http://ergoemacs.org/emacs/elisp.html">Practical Emacs Lisp</a></li>
+<li><a href="https://www.gnu.org/software/emacs/elisp-manual/elisp.html">Manuel de référence</a></li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div id="footnotes">
+<h2 class="footnotes">Notes de bas de page: </h2>
+<div id="text-footnotes">
+
+<div class="footdef"><sup><a id="fn.1" class="footnum" href="#fnr.1">1</a></sup> <div class="footpara"><p class="footpara">
+<code>Org-mode</code> n'existe que dans Emacs. Il n'y a pas d'application
+autonome qui offre les mêmes fonctionnalités. Cela n'aurait pas
+vraiment de sens.
+</p></div></div>
+
+
+</div>
+</div></div>
+<div id="postamble" class="status">
+<p class="date">Created: 2020-04-17 ven. 19:55</p>
+<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
+</div>
+</body>
+</html>
diff --git a/Tutoriel.pdf b/Tutoriel.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..1b1cfd8f65675832655cc3f7137fb956a04303af
Binary files /dev/null and b/Tutoriel.pdf differ