diff --git a/Configuration.html b/Configuration.html index 3539123e7932374ed13432e1c76568082fd6ac6e..478dd5c304bcc212454abb89b648c3bb393b101c 100644 --- a/Configuration.html +++ b/Configuration.html @@ -3,7 +3,7 @@ "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-09-09 mer. 23:37 --> +<!-- 2021-02-02 mar. 07:52 --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Configuration</title> @@ -160,6 +160,19 @@ .footdef { margin-bottom: 1em; } .figure { padding: 1em; } .figure p { text-align: center; } + .equation-container { + display: table; + text-align: center; + width: 100%; + } + .equation { + vertical-align: middle; + } + .equation-label { + display: table-cell; + text-align: right; + vertical-align: middle; + } .inlinetask { padding: 10px; border: 2px solid gray; @@ -190,7 +203,7 @@ @licstart The following is the entire license notice for the JavaScript code in this tag. -Copyright (C) 2012-2019 Free Software Foundation, Inc. +Copyright (C) 2012-2020 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 @@ -239,99 +252,96 @@ for the JavaScript code in this tag. <h2>Table des matières</h2> <div id="text-table-of-contents"> <ul> -<li><a href="#org094907b">1. Choix d'interface</a> +<li><a href="#orgec7e3c4">1. Choix d'interface</a> <ul> -<li><a href="#org9a2cac7">1.1. Pas d'écran de bienvenue</a></li> -<li><a href="#orgc74eeb4">1.2. Désactive des raccourcis</a></li> -<li><a href="#orgad01e08">1.3. Augumente la mémoire pour le <i>garbage collector</i> ⇒ meilleures performances</a></li> -<li><a href="#orgddcf7e5">1.4. <i>toolbar</i></a></li> -<li><a href="#orga72031e">1.5. Réponses par y ou n</a></li> -<li><a href="#orgd9a110a">1.6. Commentaires</a></li> -<li><a href="#org05aa7a7">1.7. Désactive l'auto-save</a></li> -<li><a href="#org0506a4a">1.8. Auto-fill</a></li> -<li><a href="#org7fd283a">1.9. Supression des blancs inutiles</a></li> -<li><a href="#org3e327e3">1.10. Numéros de lignes</a></li> -<li><a href="#org31529a2">1.11. Try</a></li> -<li><a href="#org4e22591">1.12. Posframe</a></li> -<li><a href="#org10bf2be">1.13. Which key</a></li> -<li><a href="#org5c9b88b">1.14. Gnuplot</a></li> -<li><a href="#orgec588e9">1.15. Org mode</a></li> -<li><a href="#orga76133e">1.16. Ace window</a></li> -<li><a href="#orgf661057">1.17. Window-jump</a></li> -<li><a href="#org7f7bc90">1.18. Ivy / Counsel</a></li> -<li><a href="#org96f1eba">1.19. Swiper</a></li> -<li><a href="#org04ce2db">1.20. Avy</a></li> -<li><a href="#orga73c716">1.21. Company</a></li> -<li><a href="#orgf0f2945">1.22. C++</a> +<li><a href="#org814354a">1.1. Pas d'écran de bienvenue</a></li> +<li><a href="#org28e9587">1.2. Désactive des raccourcis</a></li> +<li><a href="#org924dfee">1.3. Augumente la mémoire pour le <i>garbage collector</i> ⇒ meilleures performances</a></li> +<li><a href="#org26221ee">1.4. <i>toolbar</i></a></li> +<li><a href="#org338e36c">1.5. Réponses par y ou n</a></li> +<li><a href="#org27dbb3a">1.6. Commentaires</a></li> +<li><a href="#org824c7fc">1.7. Désactive l'auto-save</a></li> +<li><a href="#org4f5ae08">1.8. Auto-fill</a></li> +<li><a href="#org53b117a">1.9. Supression des blancs inutiles</a></li> +<li><a href="#org55e2f28">1.10. Numéros de lignes</a></li> +<li><a href="#org8999817">1.11. Try</a></li> +<li><a href="#orgeb6b7dd">1.12. Posframe</a></li> +<li><a href="#org5dfc34a">1.13. Which key</a></li> +<li><a href="#org5b0c21a">1.14. Gnuplot</a></li> +<li><a href="#orga120156">1.15. Org mode</a></li> +<li><a href="#org3749f86">1.16. Ace window</a></li> +<li><a href="#org514f527">1.17. Window-jump</a></li> +<li><a href="#org00db175">1.18. Ivy / Counsel</a></li> +<li><a href="#org0b20235">1.19. Swiper</a></li> +<li><a href="#org19e5442">1.20. Avy</a></li> +<li><a href="#orgaf66c31">1.21. Company</a></li> +<li><a href="#org7d63ba8">1.22. Treemacs</a></li> +<li><a href="#org73bbb4c">1.23. C++</a> <ul> -<li><a href="#org0474f98">1.22.1. On branche Irony à Company</a></li> -<li><a href="#org93c7de9">1.22.2. On active Irony pour le C++</a></li> -<li><a href="#orgde10a31">1.22.3. Eldoc / Irony</a></li> -<li><a href="#orga21dbcf">1.22.4. Formatage automatique : <code>clang-format</code></a></li> -<li><a href="#org32e8d94">1.22.5. Coloration syntaxique (C++ moderne)</a></li> +<li><a href="#org01051f6">1.23.1. Formatage automatique : <code>clang-format</code></a></li> +<li><a href="#org2ddd1e4">1.23.2. Coloration syntaxique (C++ moderne)</a></li> </ul> </li> -<li><a href="#org36ef6ab">1.23. Thèmes</a></li> -<li><a href="#orgc437fb6">1.24. Modeline</a></li> -<li><a href="#orgcbadbab">1.25. Parenthèses arc-en-ciel</a></li> -<li><a href="#orgb1385a4">1.26. FlyCheck</a></li> -<li><a href="#orge5af102">1.27. Python</a></li> -<li><a href="#org42f6259">1.28. YASnippet</a></li> -<li><a href="#orgabf2f0f">1.29. Divers paquets</a> +<li><a href="#orgcb1b592">1.24. Thèmes</a></li> +<li><a href="#org5b38e62">1.25. Modeline</a></li> +<li><a href="#org176a149">1.26. Parenthèses arc-en-ciel</a></li> +<li><a href="#org8587e1f">1.27. FlyCheck</a></li> +<li><a href="#org266083b">1.28. Python</a></li> +<li><a href="#orgf32a631">1.29. YASnippet</a></li> +<li><a href="#orgb4b3481">1.30. Divers paquets</a> <ul> -<li><a href="#org56f7102">1.29.1. Highlight line</a></li> -<li><a href="#org9c764c5">1.29.2. Beacon</a></li> -<li><a href="#orgc92f650">1.29.3. hungry-delete</a></li> -<li><a href="#orgf3600e8">1.29.4. Expand-region</a></li> -<li><a href="#orgcca03bd">1.29.5. Meilleure gestion du <code>kill-ring</code></a></li> -<li><a href="#orgc41432b">1.29.6. Gestion de la restauration des buffers</a></li> +<li><a href="#org4a0dd22">1.30.1. Highlight line</a></li> +<li><a href="#orgd4e61b1">1.30.2. Beacon</a></li> +<li><a href="#org659bb36">1.30.3. hungry-delete</a></li> +<li><a href="#org6d99f36">1.30.4. Expand-region</a></li> +<li><a href="#orgab9058a">1.30.5. Meilleure gestion du <code>kill-ring</code></a></li> +<li><a href="#org95bcf67">1.30.6. Gestion de la restauration des buffers</a></li> </ul> </li> -<li><a href="#org8793a51">1.30. Powerline</a></li> -<li><a href="#org49331ea">1.31. iedit</a></li> -<li><a href="#org04009ef">1.32. Narrow/widen dwim</a></li> -<li><a href="#orgd50ff62">1.33. Web Mode</a></li> -<li><a href="#org7276587">1.34. Emmet mode</a></li> -<li><a href="#orgb9ed461">1.35. Dired-dwim</a></li> -<li><a href="#org5ab5546">1.36. LaTeX</a></li> -<li><a href="#orgce4e805">1.37. Gestion de projets</a></li> -<li><a href="#org0dcd772">1.38. Org-mode (langages suportés)</a></li> -<li><a href="#org5db3db6">1.39. Parenthèses</a></li> -<li><a href="#orgf0aeba4">1.40. Taille de la police</a></li> -<li><a href="#org92234ef">1.41. Hydra</a></li> -<li><a href="#org7b69e8c">1.42. Modes git</a></li> -<li><a href="#org7fe125c">1.43. FlySpell</a></li> -<li><a href="#orgdb363d0">1.44. C++</a></li> -<li><a href="#org579b698">1.45. Compilation</a></li> -<li><a href="#org731b9d7">1.46. CMake</a></li> -<li><a href="#org7b4263a">1.47. Markdown</a></li> -<li><a href="#orgf14a25f">1.48. Dumb jump</a></li> -<li><a href="#org59e8689">1.49. Origami</a></li> -<li><a href="#org2cff21d">1.50. IBuffer</a></li> -<li><a href="#orgaf92680">1.51. WGrep</a></li> -<li><a href="#orgcc84d58">1.52. PDF tools</a></li> -<li><a href="#orgcf6fe4a">1.53. AutoYASnippet</a></li> -<li><a href="#orgd982a88">1.54. Divers</a></li> -<li><a href="#org4fa5d9e">1.55. Keyfreq</a></li> -<li><a href="#org20e86a7">1.56. Dictionnaire et césures</a></li> -<li><a href="#orgce7fb28">1.57. Mode pugs</a></li> +<li><a href="#org9402c77">1.31. Powerline</a></li> +<li><a href="#org467e4e3">1.32. iedit</a></li> +<li><a href="#orga94f82e">1.33. Narrow/widen dwim</a></li> +<li><a href="#org624d7c0">1.34. Web Mode</a></li> +<li><a href="#org252d637">1.35. Emmet mode</a></li> +<li><a href="#org5111b26">1.36. Dired-dwim</a></li> +<li><a href="#org6a0cdbc">1.37. LaTeX</a></li> +<li><a href="#orgfb52b5f">1.38. Gestion de projets</a></li> +<li><a href="#orgce7934a">1.39. Org-mode (langages suportés)</a></li> +<li><a href="#orgd1394e7">1.40. Parenthèses</a></li> +<li><a href="#org692006e">1.41. Taille de la police</a></li> +<li><a href="#orgb31f21c">1.42. Hydra</a></li> +<li><a href="#org97f4ffb">1.43. Modes git</a></li> +<li><a href="#org03157c4">1.44. FlySpell</a></li> +<li><a href="#org5ed31c8">1.45. Compilation</a></li> +<li><a href="#org93480d3">1.46. CMake</a></li> +<li><a href="#org403689a">1.47. Markdown</a></li> +<li><a href="#org4604468">1.48. Dumb jump</a></li> +<li><a href="#orgd403e86">1.49. Origami</a></li> +<li><a href="#orgbdab213">1.50. IBuffer</a></li> +<li><a href="#org90c8830">1.51. WGrep</a></li> +<li><a href="#org8ee8ca6">1.52. PDF tools</a></li> +<li><a href="#org3b6a403">1.53. AutoYASnippet</a></li> +<li><a href="#org7999d48">1.54. Divers</a></li> +<li><a href="#orgb90a7ed">1.55. Keyfreq</a></li> +<li><a href="#orgb37e0ea">1.56. Dictionnaire et césures</a></li> +<li><a href="#org0816f20">1.57. Mode pugs</a></li> </ul> </li> -<li><a href="#org737a89c">2. Annexes</a> +<li><a href="#org999a030">2. Annexes</a> <ul> -<li><a href="#org0bafe53">2.1. Génération de toute la documentation</a></li> +<li><a href="#orgfed0b8b">2.1. Génération de toute la documentation</a></li> </ul> </li> </ul> </div> </div> -<div id="outline-container-org094907b" class="outline-2"> -<h2 id="org094907b"><span class="section-number-2">1</span> Choix d'interface</h2> +<div id="outline-container-orgec7e3c4" class="outline-2"> +<h2 id="orgec7e3c4"><span class="section-number-2">1</span> Choix d'interface</h2> <div class="outline-text-2" id="text-1"> </div> -<div id="outline-container-org9a2cac7" class="outline-3"> -<h3 id="org9a2cac7"><span class="section-number-3">1.1</span> Pas d'écran de bienvenue</h3> +<div id="outline-container-org814354a" class="outline-3"> +<h3 id="org814354a"><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> @@ -340,8 +350,8 @@ for the JavaScript code in this tag. </div> </div> -<div id="outline-container-orgc74eeb4" class="outline-3"> -<h3 id="orgc74eeb4"><span class="section-number-3">1.2</span> Désactive des raccourcis</h3> +<div id="outline-container-org28e9587" class="outline-3"> +<h3 id="org28e9587"><span class="section-number-3">1.2</span> Désactive 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> @@ -350,22 +360,19 @@ for the JavaScript code in this tag. </div> </div> -<div id="outline-container-orgad01e08" class="outline-3"> -<h3 id="orgad01e08"><span class="section-number-3">1.3</span> Augumente la mémoire pour le <i>garbage collector</i> ⇒ meilleures performances</h3> +<div id="outline-container-org924dfee" class="outline-3"> +<h3 id="org924dfee"><span class="section-number-3">1.3</span> Augumente la mémoire pour le <i>garbage collector</i> ⇒ 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 class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> gc-cons-threshold <span class="org-rainbow-delimiters-depth-2">(</span>* 100 1024 1024<span class="org-rainbow-delimiters-depth-2">)</span> + read-process-output-max <span class="org-rainbow-delimiters-depth-2">(</span>* 1024 1024<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span> </pre> </div> </div> </div> -<div id="outline-container-orgddcf7e5" class="outline-3"> -<h3 id="orgddcf7e5"><span class="section-number-3">1.4</span> <i>toolbar</i></h3> +<div id="outline-container-org26221ee" class="outline-3"> +<h3 id="org26221ee"><span class="section-number-3">1.4</span> <i>toolbar</i></h3> <div class="outline-text-3" id="text-1-4"> <p> Elle est déactivée par défaut @@ -388,8 +395,8 @@ est actif. </div> </div> -<div id="outline-container-orga72031e" class="outline-3"> -<h3 id="orga72031e"><span class="section-number-3">1.5</span> Réponses par y ou n</h3> +<div id="outline-container-org338e36c" class="outline-3"> +<h3 id="org338e36c"><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> @@ -398,8 +405,8 @@ est actif. </div> </div> -<div id="outline-container-orgd9a110a" class="outline-3"> -<h3 id="orgd9a110a"><span class="section-number-3">1.6</span> Commentaires</h3> +<div id="outline-container-org27dbb3a" class="outline-3"> +<h3 id="org27dbb3a"><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"> @@ -429,8 +436,8 @@ est actif. </div> </div> -<div id="outline-container-org05aa7a7" class="outline-3"> -<h3 id="org05aa7a7"><span class="section-number-3">1.7</span> Désactive l'auto-save</h3> +<div id="outline-container-org824c7fc" class="outline-3"> +<h3 id="org824c7fc"><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> @@ -439,8 +446,8 @@ est actif. </div> </div> -<div id="outline-container-org0506a4a" class="outline-3"> -<h3 id="org0506a4a"><span class="section-number-3">1.8</span> Auto-fill</h3> +<div id="outline-container-org4f5ae08" class="outline-3"> +<h3 id="org4f5ae08"><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 @@ -460,8 +467,8 @@ automatiquement ajoutés quand les lignes sont trop longues). </div> </div> -<div id="outline-container-org7fd283a" class="outline-3"> -<h3 id="org7fd283a"><span class="section-number-3">1.9</span> Supression des blancs inutiles</h3> +<div id="outline-container-org53b117a" class="outline-3"> +<h3 id="org53b117a"><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 @@ -477,8 +484,8 @@ On retire les blancs qui traînent en fin de ligne à la sauvegarde d'un </div> </div> -<div id="outline-container-org3e327e3" class="outline-3"> -<h3 id="org3e327e3"><span class="section-number-3">1.10</span> Numéros de lignes</h3> +<div id="outline-container-org55e2f28" class="outline-3"> +<h3 id="org55e2f28"><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. @@ -498,8 +505,8 @@ Affiche les numéros des lignes en marge de gauche. </div> </div> -<div id="outline-container-org31529a2" class="outline-3"> -<h3 id="org31529a2"><span class="section-number-3">1.11</span> Try</h3> +<div id="outline-container-org8999817" class="outline-3"> +<h3 id="org8999817"><span class="section-number-3">1.11</span> Try</h3> <div class="outline-text-3" id="text-1-11"> <p> Permet d'essayer des paquets (sans les installer de manière permanente) @@ -512,8 +519,8 @@ Permet d'essayer des paquets (sans les installer de manière permanente) </div> </div> -<div id="outline-container-org4e22591" class="outline-3"> -<h3 id="org4e22591"><span class="section-number-3">1.12</span> Posframe</h3> +<div id="outline-container-orgeb6b7dd" class="outline-3"> +<h3 id="orgeb6b7dd"><span class="section-number-3">1.12</span> Posframe</h3> <div class="outline-text-3" id="text-1-12"> <p> Affiche des boîtes de dialogue @@ -526,8 +533,8 @@ Affiche des boîtes de dialogue </div> </div> -<div id="outline-container-org10bf2be" class="outline-3"> -<h3 id="org10bf2be"><span class="section-number-3">1.13</span> Which key</h3> +<div id="outline-container-org5dfc34a" class="outline-3"> +<h3 id="org5dfc34a"><span class="section-number-3">1.13</span> Which key</h3> <div class="outline-text-3" id="text-1-13"> <p> Aide en ligne pour les raccourcis (<i>quelle touche ?</i>) @@ -542,8 +549,8 @@ Aide en ligne pour les raccourcis (<i>quelle touche ?</i>) </div> </div> -<div id="outline-container-org5c9b88b" class="outline-3"> -<h3 id="org5c9b88b"><span class="section-number-3">1.14</span> Gnuplot</h3> +<div id="outline-container-org5b0c21a" class="outline-3"> +<h3 id="org5b0c21a"><span class="section-number-3">1.14</span> Gnuplot</h3> <div class="outline-text-3" id="text-1-14"> <p> Ajout du mode <code>gnuplot</code>, en particulier pour les interactions avec @@ -557,8 +564,8 @@ Ajout du mode <code>gnuplot</code>, en particulier pour les interactions avec </div> </div> -<div id="outline-container-orgec588e9" class="outline-3"> -<h3 id="orgec588e9"><span class="section-number-3">1.15</span> Org mode</h3> +<div id="outline-container-orga120156" class="outline-3"> +<h3 id="orga120156"><span class="section-number-3">1.15</span> Org mode</h3> <div class="outline-text-3" id="text-1-15"> <p> <i>Org bullets</i> pour un plus bel affichage des sections @@ -633,8 +640,8 @@ Ajout du mode <code>gnuplot</code>, en particulier pour les interactions avec </div> </div> -<div id="outline-container-orga76133e" class="outline-3"> -<h3 id="orga76133e"><span class="section-number-3">1.16</span> Ace window</h3> +<div id="outline-container-org3749f86" class="outline-3"> +<h3 id="org3749f86"><span class="section-number-3">1.16</span> Ace window</h3> <div class="outline-text-3" id="text-1-16"> <p> Permet de changer facilement de fenêtre. S'il y a plus de deux <i>buffers</i> @@ -679,8 +686,8 @@ fenêtre choisie pour s'y rendre. </div> </div> -<div id="outline-container-orgf661057" class="outline-3"> -<h3 id="orgf661057"><span class="section-number-3">1.17</span> Window-jump</h3> +<div id="outline-container-org514f527" class="outline-3"> +<h3 id="org514f527"><span class="section-number-3">1.17</span> Window-jump</h3> <div class="outline-text-3" id="text-1-17"> <p> Permet de changer intuitivement de fenêtre en utilisant les flèches du @@ -735,8 +742,8 @@ alignée avec le curseur. </div> </div> -<div id="outline-container-org7f7bc90" class="outline-3"> -<h3 id="org7f7bc90"><span class="section-number-3">1.18</span> Ivy / Counsel</h3> +<div id="outline-container-org00db175" class="outline-3"> +<h3 id="org00db175"><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 @@ -772,8 +779,8 @@ Interface de complétion </div> </div> -<div id="outline-container-org96f1eba" class="outline-3"> -<h3 id="org96f1eba"><span class="section-number-3">1.19</span> Swiper</h3> +<div id="outline-container-org0b20235" class="outline-3"> +<h3 id="org0b20235"><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 @@ -854,8 +861,8 @@ chaîne avec <code>RET</code>.</li> </div> </div> -<div id="outline-container-org04ce2db" class="outline-3"> -<h3 id="org04ce2db"><span class="section-number-3">1.20</span> Avy</h3> +<div id="outline-container-org19e5442" class="outline-3"> +<h3 id="org19e5442"><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. @@ -890,8 +897,8 @@ Saute très rapidement vers la zone de texte contenant une lettre. </div> </div> -<div id="outline-container-orga73c716" class="outline-3"> -<h3 id="orga73c716"><span class="section-number-3">1.21</span> Company</h3> +<div id="outline-container-orgaf66c31" class="outline-3"> +<h3 id="orgaf66c31"><span class="section-number-3">1.21</span> Company</h3> <div class="outline-text-3" id="text-1-21"> <p> Boîtes de dialogue pour la complétion @@ -905,6 +912,11 @@ Boîtes de dialogue pour la complétion <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">use-package</span> <span class="org-constant">company-box</span> + <span class="org-builtin">:ensure</span> t + <span class="org-builtin">:hook</span> <span class="org-rainbow-delimiters-depth-2">(</span>company-mode . company-box-mode<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> @@ -923,74 +935,138 @@ Boîtes de dialogue pour la complétion </div> </div> </div> - -<div id="outline-container-orgf0f2945" class="outline-3"> -<h3 id="orgf0f2945"><span class="section-number-3">1.22</span> C++</h3> +<div id="outline-container-org7d63ba8" class="outline-3"> +<h3 id="org7d63ba8"><span class="section-number-3">1.22</span> Treemacs</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-org0474f98" class="outline-4"> -<h4 id="org0474f98"><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> - -<p> -Et on utilise <code>company-irony-c-header</code> pour compléter aussi les -<i>includes</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">company-irony-c-headers</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 '<span class="org-rainbow-delimiters-depth-3">(</span>company-irony-c-headers<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 class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">treemacs</span> + <span class="org-builtin">:ensure</span> t<span class="org-rainbow-delimiters-depth-1">)</span> </pre> </div> </div> </div> +<div id="outline-container-org73bbb4c" class="outline-3"> +<h3 id="org73bbb4c"><span class="section-number-3">1.23</span> C++</h3> +<div class="outline-text-3" id="text-1-23"> +<p> +Transforme Emacs en un véritable IDE en utilisant <code>lsp</code>. +</p> -<div id="outline-container-org93c7de9" class="outline-4"> -<h4 id="org93c7de9"><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> +<p> +De nombreuses fonctionnalités sont accessibles au clic droit de la +souris. On peut accéder à de nombreuses fonctionnalités en utilisant +les raccourcis contextuels proposés par <code>hydra</code> en faisant <code>C-l</code>. En +passant la souris sur le texte, un <i>popup</i> décrivant l'élément est +affiché. +</p> -<div id="outline-container-orgde10a31" class="outline-4"> -<h4 id="orgde10a31"><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 +On rappelle quelques raccourcis utiles : </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> ou <code>C-<mouse1></code></td> +<td class="org-left">Se rend à la déclaration de l'élément sous le curseur</td> +</tr> + +<tr> +<td class="org-left"><code>M-?</code></td> +<td class="org-left">Affiche les références à l'élément sous le curseur</td> +</tr> + +<tr> +<td class="org-left"><code>C-l</code></td> +<td class="org-left">Débute l'interaction <code>hydra</code></td> +</tr> + +<tr> +<td class="org-left"><code>C-<mouse3></code></td> +<td class="org-left">Menu contextuel</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">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 class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">unless</span> <span class="org-rainbow-delimiters-depth-2">(</span>package-installed-p 'use-package<span class="org-rainbow-delimiters-depth-2">)</span> + <span class="org-rainbow-delimiters-depth-2">(</span>package-refresh-contents<span class="org-rainbow-delimiters-depth-2">)</span> + <span class="org-rainbow-delimiters-depth-2">(</span>package-install 'use-package<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">eval-when-compile</span> + <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">require</span> '<span class="org-constant">use-package</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">require</span> '<span class="org-constant">bind-key</span><span class="org-rainbow-delimiters-depth-1">)</span> +<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> use-package-always-ensure t<span class="org-rainbow-delimiters-depth-1">)</span> + +<span class="org-comment-delimiter">;; </span><span class="org-comment">config basique de lsp</span> +<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">lsp-mode</span> + <span class="org-builtin">:init</span> + <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> lsp-keymap-prefix <span class="org-string">"C-c l"</span><span class="org-rainbow-delimiters-depth-2">)</span> + <span class="org-comment-delimiter">;; </span><span class="org-comment">on vire les recommandations de codage : un peu lourd</span> + <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> lsp-ui-sideline-show-code-actions nil<span class="org-rainbow-delimiters-depth-2">)</span> + <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> lsp-modeline-code-actions-enable nil<span class="org-rainbow-delimiters-depth-2">)</span> + <span class="org-comment-delimiter">;; </span><span class="org-comment">on vire l'affichage de la doc sous le curseur : trop invasif</span> + <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> lsp-ui-doc-show-with-cursor nil<span class="org-rainbow-delimiters-depth-2">)</span> + <span class="org-comment-delimiter">;; </span><span class="org-comment">on vire les ajouts de code automatiques à la complétion : insupportable</span> + <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> lsp-completion-enable-additional-text-edit nil<span class="org-rainbow-delimiters-depth-2">)</span> + <span class="org-comment-delimiter">;; </span><span class="org-comment">barre de localisation</span> + <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-keyword">setq</span> lsp-headerline-breadcrumb-enable t<span class="org-rainbow-delimiters-depth-2">)</span> + <span class="org-builtin">:hook</span> <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span>c++-mode . lsp<span class="org-rainbow-delimiters-depth-3">)</span> + <span class="org-rainbow-delimiters-depth-3">(</span>lsp-mode . lsp-enable-which-key-integration<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span> + <span class="org-builtin">:custom-face</span> + <span class="org-rainbow-delimiters-depth-2">(</span>lsp-face-highlight-textual <span class="org-rainbow-delimiters-depth-3">(</span><span class="org-rainbow-delimiters-depth-4">(</span>t <span class="org-rainbow-delimiters-depth-5">(</span><span class="org-builtin">:inherit</span> highlight <span class="org-builtin">:underline</span> t<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">:commands</span> lsp<span class="org-rainbow-delimiters-depth-1">)</span> + +<span class="org-comment-delimiter">;; </span><span class="org-comment">on utilise lsp-ui et ivy</span> +<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">use-package</span> <span class="org-constant">lsp-ui</span> <span class="org-builtin">:commands</span> lsp-ui-mode<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">lsp-ivy</span> <span class="org-builtin">:commands</span> lsp-ivy-workspace-symbol<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">treemacs</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">lsp-treemacs</span> <span class="org-builtin">:commands</span> lsp-treemacs-errors-list<span class="org-rainbow-delimiters-depth-1">)</span> + +<span class="org-comment-delimiter">;; </span><span class="org-comment">autres paquets de base</span> +<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> package-selected-packages '<span class="org-rainbow-delimiters-depth-2">(</span>yasnippet tramp company-lsp + projectile hydra flycheck company avy which-key ivy-xref<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">when</span> <span class="org-rainbow-delimiters-depth-2">(</span>cl-find-if-not #'package-installed-p package-selected-packages<span class="org-rainbow-delimiters-depth-2">)</span> + <span class="org-rainbow-delimiters-depth-2">(</span>package-refresh-contents<span class="org-rainbow-delimiters-depth-2">)</span> + <span class="org-rainbow-delimiters-depth-2">(</span>mapc #'package-install package-selected-packages<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-hook 'lsp<span class="org-rainbow-delimiters-depth-1">)</span> +<span class="org-rainbow-delimiters-depth-1">(</span>add-hook 'c++-mode-hook 'lsp<span class="org-rainbow-delimiters-depth-1">)</span> +<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> lsp-keymap-prefix <span class="org-string">"C-c l"</span><span class="org-rainbow-delimiters-depth-1">)</span> + +<span class="org-comment-delimiter">; </span><span class="org-comment">réactivité de lsp</span> +<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">setq</span> lsp-idle-delay 0.1<span class="org-rainbow-delimiters-depth-1">)</span> + +<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-keyword">with-eval-after-load</span> 'lsp-mode + <span class="org-rainbow-delimiters-depth-2">(</span>add-hook 'lsp-mode-hook #'lsp-enable-which-key-integration<span class="org-rainbow-delimiters-depth-2">)</span> + <span class="org-comment-delimiter">;; </span><span class="org-comment">(lsp-register-client</span> + <span class="org-comment-delimiter">;; </span><span class="org-comment">;; *** Mettre le chemin complet vers clangd ***</span> + <span class="org-comment-delimiter">;; </span><span class="org-comment">(make-lsp-client :new-connection (lsp-tramp-connection "/home/test-emacs/bin/clangd")</span> + <span class="org-comment-delimiter">;; </span><span class="org-comment">:major-modes '(c++-mode)</span> + <span class="org-comment-delimiter">;; </span><span class="org-comment">:remote? t</span> + <span class="org-comment-delimiter">;; </span><span class="org-comment">:server-id 'clangd-remote))</span> + <span class="org-rainbow-delimiters-depth-1">)</span> </pre> </div> </div> -</div> -<div id="outline-container-orga21dbcf" class="outline-4"> -<h4 id="orga21dbcf"><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"> +<div id="outline-container-org01051f6" class="outline-4"> +<h4 id="org01051f6"><span class="section-number-4">1.23.1</span> Formatage automatique : <code>clang-format</code></h4> +<div class="outline-text-4" id="text-1-23-1"> <p> Création d'un raccourci spécial pour formater une zone du code. </p> @@ -1079,9 +1155,9 @@ Force le formatage du fichier quand il est sauvegardé </div> </div> -<div id="outline-container-org32e8d94" class="outline-4"> -<h4 id="org32e8d94"><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 id="outline-container-org2ddd1e4" class="outline-4"> +<h4 id="org2ddd1e4"><span class="section-number-4">1.23.2</span> Coloration syntaxique (C++ moderne)</h4> +<div class="outline-text-4" id="text-1-23-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">modern-cpp-font-lock</span> <span class="org-builtin">:ensure</span> t @@ -1097,9 +1173,9 @@ Force le formatage du fichier quand il est sauvegardé </div> </div> -<div id="outline-container-org36ef6ab" class="outline-3"> -<h3 id="org36ef6ab"><span class="section-number-3">1.23</span> Thèmes</h3> -<div class="outline-text-3" id="text-1-23"> +<div id="outline-container-orgcb1b592" class="outline-3"> +<h3 id="orgcb1b592"><span class="section-number-3">1.24</span> Thèmes</h3> +<div class="outline-text-3" id="text-1-24"> <p> Chargement de quelques thèmes </p> @@ -1116,9 +1192,9 @@ Chargement de quelques thèmes </div> </div> -<div id="outline-container-orgc437fb6" class="outline-3"> -<h3 id="orgc437fb6"><span class="section-number-3">1.24</span> Modeline</h3> -<div class="outline-text-3" id="text-1-24"> +<div id="outline-container-org5b38e62" class="outline-3"> +<h3 id="org5b38e62"><span class="section-number-3">1.25</span> Modeline</h3> +<div class="outline-text-3" id="text-1-25"> <p> Augmente la taille de la police </p> @@ -1164,9 +1240,9 @@ Taille de la fenêtre et position </div> </div> -<div id="outline-container-orgcbadbab" class="outline-3"> -<h3 id="orgcbadbab"><span class="section-number-3">1.25</span> Parenthèses arc-en-ciel</h3> -<div class="outline-text-3" id="text-1-25"> +<div id="outline-container-org176a149" class="outline-3"> +<h3 id="org176a149"><span class="section-number-3">1.26</span> Parenthèses arc-en-ciel</h3> +<div class="outline-text-3" id="text-1-26"> <p> Améliore le visuel des parenthèses </p> @@ -1183,21 +1259,9 @@ Améliore le visuel des parenthèses </div> </div> -<div id="outline-container-orgb1385a4" class="outline-3"> -<h3 id="orgb1385a4"><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> - +<div id="outline-container-org8587e1f" class="outline-3"> +<h3 id="org8587e1f"><span class="section-number-3">1.27</span> FlyCheck</h3> +<div class="outline-text-3" id="text-1-27"> <p> On charge <code>FlyCheck</code> </p> @@ -1232,9 +1296,9 @@ On utilise <code>posframe</code> pour afficher les erreurs en ligne </div> </div> </div> -<div id="outline-container-orge5af102" class="outline-3"> -<h3 id="orge5af102"><span class="section-number-3">1.27</span> Python</h3> -<div class="outline-text-3" id="text-1-27"> +<div id="outline-container-org266083b" class="outline-3"> +<h3 id="org266083b"><span class="section-number-3">1.28</span> Python</h3> +<div class="outline-text-3" id="text-1-28"> <p> Attention pour que la configuration fonctionne, il faut installer <code>virtualenv</code>. Pour les systèmes <code>Debian</code> @@ -1263,9 +1327,9 @@ Attention pour que la configuration fonctionne, il faut installer </div> </div> -<div id="outline-container-org42f6259" class="outline-3"> -<h3 id="org42f6259"><span class="section-number-3">1.28</span> YASnippet</h3> -<div class="outline-text-3" id="text-1-28"> +<div id="outline-container-orgf32a631" class="outline-3"> +<h3 id="orgf32a631"><span class="section-number-3">1.29</span> YASnippet</h3> +<div class="outline-text-3" id="text-1-29"> <p> Le système de templates pour Emacs </p> @@ -1284,13 +1348,13 @@ Le système de templates pour Emacs </div> </div> -<div id="outline-container-orgabf2f0f" class="outline-3"> -<h3 id="orgabf2f0f"><span class="section-number-3">1.29</span> Divers paquets</h3> -<div class="outline-text-3" id="text-1-29"> +<div id="outline-container-orgb4b3481" class="outline-3"> +<h3 id="orgb4b3481"><span class="section-number-3">1.30</span> Divers paquets</h3> +<div class="outline-text-3" id="text-1-30"> </div> -<div id="outline-container-org56f7102" class="outline-4"> -<h4 id="org56f7102"><span class="section-number-4">1.29.1</span> Highlight line</h4> -<div class="outline-text-4" id="text-1-29-1"> +<div id="outline-container-org4a0dd22" class="outline-4"> +<h4 id="org4a0dd22"><span class="section-number-4">1.30.1</span> Highlight line</h4> +<div class="outline-text-4" id="text-1-30-1"> <p> Mise en valeur de la ligne courante </p> @@ -1301,9 +1365,9 @@ Mise en valeur de la ligne courante </div> </div> -<div id="outline-container-org9c764c5" class="outline-4"> -<h4 id="org9c764c5"><span class="section-number-4">1.29.2</span> Beacon</h4> -<div class="outline-text-4" id="text-1-29-2"> +<div id="outline-container-orgd4e61b1" class="outline-4"> +<h4 id="orgd4e61b1"><span class="section-number-4">1.30.2</span> Beacon</h4> +<div class="outline-text-4" id="text-1-30-2"> <p> Flash de la ligne aux changements de page ou de buffer </p> @@ -1317,9 +1381,9 @@ Flash de la ligne aux changements de page ou de buffer </div> </div> -<div id="outline-container-orgc92f650" class="outline-4"> -<h4 id="orgc92f650"><span class="section-number-4">1.29.3</span> hungry-delete</h4> -<div class="outline-text-4" id="text-1-29-3"> +<div id="outline-container-org659bb36" class="outline-4"> +<h4 id="org659bb36"><span class="section-number-4">1.30.3</span> hungry-delete</h4> +<div class="outline-text-4" id="text-1-30-3"> <p> Suppression de tous les blancs quand appuie sur backspace ou delete </p> @@ -1333,9 +1397,9 @@ Suppression de tous les blancs quand appuie sur backspace ou delete </div> </div> -<div id="outline-container-orgf3600e8" class="outline-4"> -<h4 id="orgf3600e8"><span class="section-number-4">1.29.4</span> Expand-region</h4> -<div class="outline-text-4" id="text-1-29-4"> +<div id="outline-container-org6d99f36" class="outline-4"> +<h4 id="org6d99f36"><span class="section-number-4">1.30.4</span> Expand-region</h4> +<div class="outline-text-4" id="text-1-30-4"> <p> Sélectionne une zone de manière incrémentale. mot, phrase, paragraphe, etc de manière intelligente. @@ -1350,9 +1414,9 @@ etc de manière intelligente. </div> </div> -<div id="outline-container-orgcca03bd" class="outline-4"> -<h4 id="orgcca03bd"><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 id="outline-container-orgab9058a" class="outline-4"> +<h4 id="orgab9058a"><span class="section-number-4">1.30.5</span> Meilleure gestion du <code>kill-ring</code></h4> +<div class="outline-text-4" id="text-1-30-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> @@ -1360,9 +1424,9 @@ etc de manière intelligente. </div> </div> -<div id="outline-container-orgc41432b" class="outline-4"> -<h4 id="orgc41432b"><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 id="outline-container-org95bcf67" class="outline-4"> +<h4 id="org95bcf67"><span class="section-number-4">1.30.6</span> Gestion de la restauration des buffers</h4> +<div class="outline-text-4" id="text-1-30-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> @@ -1374,9 +1438,9 @@ etc de manière intelligente. </div> </div> -<div id="outline-container-org8793a51" class="outline-3"> -<h3 id="org8793a51"><span class="section-number-3">1.30</span> Powerline</h3> -<div class="outline-text-3" id="text-1-30"> +<div id="outline-container-org9402c77" class="outline-3"> +<h3 id="org9402c77"><span class="section-number-3">1.31</span> Powerline</h3> +<div class="outline-text-3" id="text-1-31"> <p> Un bel affichage pour la barre d'état (<i>modeline</i>) </p> @@ -1416,9 +1480,9 @@ N'affiche pas tous les modes mineurs, les place dans le menu de la </div> </div> -<div id="outline-container-org49331ea" class="outline-3"> -<h3 id="org49331ea"><span class="section-number-3">1.31</span> iedit</h3> -<div class="outline-text-3" id="text-1-31"> +<div id="outline-container-org467e4e3" class="outline-3"> +<h3 id="org467e4e3"><span class="section-number-3">1.32</span> iedit</h3> +<div class="outline-text-3" id="text-1-32"> <p> Modifie les copies d'une zone séléctionnée simultanément </p> @@ -1457,9 +1521,9 @@ Modifie les copies d'une zone séléctionnée simultanément </div> </div> -<div id="outline-container-org04009ef" class="outline-3"> -<h3 id="org04009ef"><span class="section-number-3">1.32</span> Narrow/widen dwim</h3> -<div class="outline-text-3" id="text-1-32"> +<div id="outline-container-orga94f82e" class="outline-3"> +<h3 id="orga94f82e"><span class="section-number-3">1.33</span> Narrow/widen dwim</h3> +<div class="outline-text-3" id="text-1-33"> <p> Réduit/agrandit une zone d'édition de manière intelligente </p> @@ -1503,9 +1567,9 @@ Remplace la fonction Emacs standard par <code>dwim</code> </div> </div> -<div id="outline-container-orgd50ff62" class="outline-3"> -<h3 id="orgd50ff62"><span class="section-number-3">1.33</span> Web Mode</h3> -<div class="outline-text-3" id="text-1-33"> +<div id="outline-container-org624d7c0" class="outline-3"> +<h3 id="org624d7c0"><span class="section-number-3">1.34</span> Web Mode</h3> +<div class="outline-text-3" id="text-1-34"> <p> Mode avancé pour l'édition de pages <code>HTML</code>, <code>Css</code>,… </p> @@ -1528,9 +1592,9 @@ Mode avancé pour l'édition de pages <code>HTML</code>, <code>Css</code>,Ȃ </div> </div> -<div id="outline-container-org7276587" class="outline-3"> -<h3 id="org7276587"><span class="section-number-3">1.34</span> Emmet mode</h3> -<div class="outline-text-3" id="text-1-34"> +<div id="outline-container-org252d637" class="outline-3"> +<h3 id="org252d637"><span class="section-number-3">1.35</span> Emmet mode</h3> +<div class="outline-text-3" id="text-1-35"> <p> Ensemble de fonctions permettant l'édition rapide de <i>markup languages</i> (<code>HTML</code>, <code>SGML</code>,…) @@ -1550,9 +1614,9 @@ Ensemble de fonctions permettant l'édition rapide de <i>markup languages</i> </div> </div> -<div id="outline-container-orgb9ed461" class="outline-3"> -<h3 id="orgb9ed461"><span class="section-number-3">1.35</span> Dired-dwim</h3> -<div class="outline-text-3" id="text-1-35"> +<div id="outline-container-org5111b26" class="outline-3"> +<h3 id="org5111b26"><span class="section-number-3">1.36</span> Dired-dwim</h3> +<div class="outline-text-3" id="text-1-36"> <p> Permet d'utiliser réduire/agrandir les affichages de répertoires </p> @@ -1576,9 +1640,9 @@ Permet d'utiliser réduire/agrandir les affichages de répertoires </div> </div> -<div id="outline-container-org5ab5546" class="outline-3"> -<h3 id="org5ab5546"><span class="section-number-3">1.36</span> LaTeX</h3> -<div class="outline-text-3" id="text-1-36"> +<div id="outline-container-org6a0cdbc" class="outline-3"> +<h3 id="org6a0cdbc"><span class="section-number-3">1.37</span> LaTeX</h3> +<div class="outline-text-3" id="text-1-37"> <p> Configuration LaTeX basique. </p> @@ -1602,9 +1666,9 @@ Configuration LaTeX basique. </div> </div> -<div id="outline-container-orgce4e805" class="outline-3"> -<h3 id="orgce4e805"><span class="section-number-3">1.37</span> Gestion de projets</h3> -<div class="outline-text-3" id="text-1-37"> +<div id="outline-container-orgfb52b5f" class="outline-3"> +<h3 id="orgfb52b5f"><span class="section-number-3">1.38</span> Gestion de projets</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">projectile</span> <span class="org-builtin">:ensure</span> t @@ -1617,9 +1681,9 @@ Configuration LaTeX basique. </div> </div> -<div id="outline-container-org0dcd772" class="outline-3"> -<h3 id="org0dcd772"><span class="section-number-3">1.38</span> Org-mode (langages suportés)</h3> -<div class="outline-text-3" id="text-1-38"> +<div id="outline-container-orgce7934a" class="outline-3"> +<h3 id="orgce7934a"><span class="section-number-3">1.39</span> Org-mode (langages suportés)</h3> +<div class="outline-text-3" id="text-1-39"> <p> Charge les langages disponibles pour org-mode </p> @@ -1644,9 +1708,9 @@ Charge les langages disponibles pour org-mode </div> </div> -<div id="outline-container-org5db3db6" class="outline-3"> -<h3 id="org5db3db6"><span class="section-number-3">1.39</span> Parenthèses</h3> -<div class="outline-text-3" id="text-1-39"> +<div id="outline-container-orgd1394e7" class="outline-3"> +<h3 id="orgd1394e7"><span class="section-number-3">1.40</span> Parenthèses</h3> +<div class="outline-text-3" id="text-1-40"> <p> Gestion intelligente des parenthèses. </p> @@ -1697,9 +1761,9 @@ raccourci suivant. </div> </div> -<div id="outline-container-orgf0aeba4" class="outline-3"> -<h3 id="orgf0aeba4"><span class="section-number-3">1.40</span> Taille de la police</h3> -<div class="outline-text-3" id="text-1-40"> +<div id="outline-container-org692006e" class="outline-3"> +<h3 id="org692006e"><span class="section-number-3">1.41</span> Taille de la police</h3> +<div class="outline-text-3" id="text-1-41"> <p> Change la taille de la police dynamiquement (temporaire) </p> @@ -1740,9 +1804,9 @@ Change la taille de la police dynamiquement (temporaire) </div> </div> -<div id="outline-container-org92234ef" class="outline-3"> -<h3 id="org92234ef"><span class="section-number-3">1.41</span> Hydra</h3> -<div class="outline-text-3" id="text-1-41"> +<div id="outline-container-orgb31f21c" class="outline-3"> +<h3 id="orgb31f21c"><span class="section-number-3">1.42</span> Hydra</h3> +<div class="outline-text-3" id="text-1-42"> <p> Outil de simplification des raccourcis. Un <i>popup</i> contextuel apparaît. </p> @@ -1813,9 +1877,9 @@ Outil de simplification des raccourcis. Un <i>popup</i> contextuel apparaît. </div> </div> -<div id="outline-container-org7b69e8c" class="outline-3"> -<h3 id="org7b69e8c"><span class="section-number-3">1.42</span> Modes git</h3> -<div class="outline-text-3" id="text-1-42"> +<div id="outline-container-org97f4ffb" class="outline-3"> +<h3 id="org97f4ffb"><span class="section-number-3">1.43</span> Modes git</h3> +<div class="outline-text-3" id="text-1-43"> <p> Le sublime <code>Magit</code>. </p> @@ -1930,9 +1994,9 @@ checkout -p</code>) </div> </div> -<div id="outline-container-org7fe125c" class="outline-3"> -<h3 id="org7fe125c"><span class="section-number-3">1.43</span> FlySpell</h3> -<div class="outline-text-3" id="text-1-43"> +<div id="outline-container-org03157c4" class="outline-3"> +<h3 id="org03157c4"><span class="section-number-3">1.44</span> FlySpell</h3> +<div class="outline-text-3" id="text-1-44"> <p> Correcteur orthographique à la volée. </p> @@ -1953,27 +2017,8 @@ Correcteur orthographique à la volée. </div> </div> -<div id="outline-container-orgdb363d0" class="outline-3"> -<h3 id="orgdb363d0"><span class="section-number-3">1.44</span> C++</h3> -<div class="outline-text-3" id="text-1-44"> -<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-org579b698" class="outline-3"> -<h3 id="org579b698"><span class="section-number-3">1.45</span> Compilation</h3> +<div id="outline-container-org5ed31c8" class="outline-3"> +<h3 id="org5ed31c8"><span class="section-number-3">1.45</span> Compilation</h3> <div class="outline-text-3" id="text-1-45"> <p> Active le rendu des couleurs ANSI dans le <i>buffer</i> de compilation @@ -1994,26 +2039,6 @@ Active le rendu des couleurs ANSI dans le <i>buffer</i> de compilation </pre> </div> -<p> -Ferme automatiquement le <i>buffer</i> de compilation lorsqu'il n'y a aucune -erreur (<i>warnings</i> compris). -</p> -<div class="org-src-container"> -<pre class="src src-emacs-lisp"><span class="org-comment-delimiter">;; </span><span class="org-comment">(setq compilation-finish-function</span> -<span class="org-comment-delimiter">;; </span><span class="org-comment">(lambda (buf str)</span> -<span class="org-comment-delimiter">;; </span><span class="org-comment">(if (string-match "*Compilation*" (buffer-name buf))</span> -<span class="org-comment-delimiter">;; </span><span class="org-comment">(if (string-match "abnormally" str)</span> -<span class="org-comment-delimiter">;; </span><span class="org-comment">(message "There were errors :-(")</span> -<span class="org-comment-delimiter">;; </span><span class="org-comment">;;no errors, make the compilation window go away in 1 second</span> -<span class="org-comment-delimiter">;; </span><span class="org-comment">(run-at-time 1 nil</span> -<span class="org-comment-delimiter">;; </span><span class="org-comment">(lambda (buf)</span> -<span class="org-comment-delimiter">;; </span><span class="org-comment">(delete-windows-on buf)</span> -<span class="org-comment-delimiter">;; </span><span class="org-comment">(bury-buffer buf))</span> -<span class="org-comment-delimiter">;; </span><span class="org-comment">buf)</span> -<span class="org-comment-delimiter">;; </span><span class="org-comment">(message "No errors :-)")))))</span> -</pre> -</div> - <p> Force la création du <i>buffer</i> de compilation en dessous </p> @@ -2063,8 +2088,8 @@ Définit <code>C-c C-c</code> comme raccourci pour invoquer <code>make</code>. </div> </div> -<div id="outline-container-org731b9d7" class="outline-3"> -<h3 id="org731b9d7"><span class="section-number-3">1.46</span> CMake</h3> +<div id="outline-container-org93480d3" class="outline-3"> +<h3 id="org93480d3"><span class="section-number-3">1.46</span> CMake</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">cmake-mode</span> @@ -2087,8 +2112,8 @@ Définit <code>C-c C-c</code> comme raccourci pour invoquer <code>make</code>. </div> </div> -<div id="outline-container-org7b4263a" class="outline-3"> -<h3 id="org7b4263a"><span class="section-number-3">1.47</span> Markdown</h3> +<div id="outline-container-org403689a" class="outline-3"> +<h3 id="org403689a"><span class="section-number-3">1.47</span> Markdown</h3> <div class="outline-text-3" id="text-1-47"> <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> @@ -2099,8 +2124,8 @@ Définit <code>C-c C-c</code> comme raccourci pour invoquer <code>make</code>. </div> </div> -<div id="outline-container-orgf14a25f" class="outline-3"> -<h3 id="orgf14a25f"><span class="section-number-3">1.48</span> Dumb jump</h3> +<div id="outline-container-org4604468" class="outline-3"> +<h3 id="org4604468"><span class="section-number-3">1.48</span> Dumb jump</h3> <div class="outline-text-3" id="text-1-48"> <p> Permet de se déplacer <b>très</b> rapidement dans un texte ou de retrouver @@ -2146,8 +2171,8 @@ une définition. </div> </div> -<div id="outline-container-org59e8689" class="outline-3"> -<h3 id="org59e8689"><span class="section-number-3">1.49</span> Origami</h3> +<div id="outline-container-orgd403e86" class="outline-3"> +<h3 id="orgd403e86"><span class="section-number-3">1.49</span> Origami</h3> <div class="outline-text-3" id="text-1-49"> <p> Mode permettant le pliage (<i>folding</i>) de régions @@ -2160,8 +2185,8 @@ Mode permettant le pliage (<i>folding</i>) de régions </div> </div> -<div id="outline-container-org2cff21d" class="outline-3"> -<h3 id="org2cff21d"><span class="section-number-3">1.50</span> IBuffer</h3> +<div id="outline-container-orgbdab213" class="outline-3"> +<h3 id="orgbdab213"><span class="section-number-3">1.50</span> IBuffer</h3> <div class="outline-text-3" id="text-1-50"> <p> Un meilleur gestionnaire de <i>buffers</i>. @@ -2228,8 +2253,8 @@ Un meilleur gestionnaire de <i>buffers</i>. </div> </div> -<div id="outline-container-orgaf92680" class="outline-3"> -<h3 id="orgaf92680"><span class="section-number-3">1.51</span> WGrep</h3> +<div id="outline-container-org90c8830" class="outline-3"> +<h3 id="org90c8830"><span class="section-number-3">1.51</span> WGrep</h3> <div class="outline-text-3" id="text-1-51"> <p> Permet de modifier le résultat d'un <code>grep</code> (donc simultanément dans @@ -2281,8 +2306,8 @@ voir <a href="https://github.com/emacsmirror/emacswiki.org/blob/master/wgrep.el" </div> </div> -<div id="outline-container-orgcc84d58" class="outline-3"> -<h3 id="orgcc84d58"><span class="section-number-3">1.52</span> PDF tools</h3> +<div id="outline-container-org8ee8ca6" class="outline-3"> +<h3 id="org8ee8ca6"><span class="section-number-3">1.52</span> PDF tools</h3> <div class="outline-text-3" id="text-1-52"> <p> Outils d'édition de <code>PDF</code> dans Emacs @@ -2307,8 +2332,8 @@ Outils d'édition de <code>PDF</code> dans Emacs </div> </div> -<div id="outline-container-orgcf6fe4a" class="outline-3"> -<h3 id="orgcf6fe4a"><span class="section-number-3">1.53</span> AutoYASnippet</h3> +<div id="outline-container-org3b6a403" class="outline-3"> +<h3 id="org3b6a403"><span class="section-number-3">1.53</span> AutoYASnippet</h3> <div class="outline-text-3" id="text-1-53"> <p> Outil de création rapide de snipets. @@ -2322,8 +2347,8 @@ Voir la documentation en ligne <a href="https://github.com/abo-abo/auto-yasnippe </div> </div> -<div id="outline-container-orgd982a88" class="outline-3"> -<h3 id="orgd982a88"><span class="section-number-3">1.54</span> Divers</h3> +<div id="outline-container-org7999d48" class="outline-3"> +<h3 id="org7999d48"><span class="section-number-3">1.54</span> Divers</h3> <div class="outline-text-3" id="text-1-54"> <p> Quelques réglages utilitaires @@ -2340,8 +2365,8 @@ Quelques réglages utilitaires </div> </div> -<div id="outline-container-org4fa5d9e" class="outline-3"> -<h3 id="org4fa5d9e"><span class="section-number-3">1.55</span> Keyfreq</h3> +<div id="outline-container-orgb90a7ed" class="outline-3"> +<h3 id="orgb90a7ed"><span class="section-number-3">1.55</span> Keyfreq</h3> <div class="outline-text-3" id="text-1-55"> <p> Enregistre la fréquence d'utilisation de commandes. Pour obtenir les @@ -2359,8 +2384,8 @@ statistiques, utiliser la commande <code>M-x keyfreq-show</code> </div> </div> -<div id="outline-container-org20e86a7" class="outline-3"> -<h3 id="org20e86a7"><span class="section-number-3">1.56</span> Dictionnaire et césures</h3> +<div id="outline-container-orgb37e0ea" class="outline-3"> +<h3 id="orgb37e0ea"><span class="section-number-3">1.56</span> Dictionnaire et césures</h3> <div class="outline-text-3" id="text-1-56"> <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> @@ -2372,8 +2397,8 @@ statistiques, utiliser la commande <code>M-x keyfreq-show</code> </div> </div> -<div id="outline-container-orgce7fb28" class="outline-3"> -<h3 id="orgce7fb28"><span class="section-number-3">1.57</span> Mode pugs</h3> +<div id="outline-container-org0816f20" class="outline-3"> +<h3 id="org0816f20"><span class="section-number-3">1.57</span> Mode pugs</h3> <div class="outline-text-3" id="text-1-57"> <div class="org-src-container"> <pre class="src src-emacs-lisp"><span class="org-rainbow-delimiters-depth-1">(</span>load-library <span class="org-string">"~/.emacs.d/extra/pugs.el"</span><span class="org-rainbow-delimiters-depth-1">)</span> @@ -2385,12 +2410,12 @@ statistiques, utiliser la commande <code>M-x keyfreq-show</code> </div> </div> -<div id="outline-container-org737a89c" class="outline-2"> -<h2 id="org737a89c"><span class="section-number-2">2</span> Annexes</h2> +<div id="outline-container-org999a030" class="outline-2"> +<h2 id="org999a030"><span class="section-number-2">2</span> Annexes</h2> <div class="outline-text-2" id="text-2"> </div> -<div id="outline-container-org0bafe53" class="outline-3"> -<h3 id="org0bafe53"><span class="section-number-3">2.1</span> Génération de toute la documentation</h3> +<div id="outline-container-orgfed0b8b" class="outline-3"> +<h3 id="orgfed0b8b"><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 @@ -2415,7 +2440,7 @@ de tous les fichier <code>.org</code> du répertoire de configuration Emacs. </div> </div> <div id="postamble" class="status"> -<p class="date">Created: 2020-09-09 mer. 23:37</p> +<p class="date">Created: 2021-02-02 mar. 07:52</p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> </div> </body> diff --git a/Configuration.org b/Configuration.org index e8cf1a17ceb04572464ee6a08635a28200eb013b..b02ddac65a97302fbcdf87f97320a68080c64e44 100644 --- a/Configuration.org +++ b/Configuration.org @@ -31,11 +31,8 @@ ** Augumente la mémoire pour le /garbage collector/ \rArr meilleures performances #+BEGIN_SRC emacs-lisp - (setq gc-cons-threshold 64000000) - (add-hook 'after-init-hook - #'(lambda () - ;; restore after startup - (setq gc-cons-threshold 800000))) + (setq gc-cons-threshold (* 100 1024 1024) + read-process-output-max (* 1024 1024)) #+END_SRC ** /toolbar/ @@ -340,6 +337,11 @@ Boîtes de dialogue pour la complétion (global-company-mode t)) + + (use-package company-box + :ensure t + :hook (company-mode . company-box-mode)) + (defun my/python-mode-hook () (add-to-list 'company-backends 'company-jedi)) @@ -355,44 +357,88 @@ Boîtes de dialogue pour la complétion (add-hook 'python-mode-hook 'my/python-mode-hook) #+END_SRC - -** C++ -Transforme Emacs en un véritable IDE en utilisant ~Irony~ -*** On branche Irony à Company -#+BEGIN_SRC emacs-lisp - (use-package company-irony - :ensure t - :config - (add-to-list 'company-backends 'company-irony)) -#+END_SRC - -Et on utilise ~company-irony-c-header~ pour compléter aussi les -/includes/. +** Treemacs #+BEGIN_SRC emacs-lisp - (use-package company-irony-c-headers - :ensure t - :config - (add-to-list - 'company-backends '(company-irony-c-headers))) -#+END_SRC - -*** On active Irony pour le C++ -#+BEGIN_SRC emacs-lisp - (use-package irony - :ensure t - :config - (add-hook 'c++-mode-hook 'irony-mode) - (add-hook 'c-mode-hook 'irony-mode) - (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)) + (use-package treemacs + :ensure t) #+END_SRC - -*** Eldoc / Irony -Affiche la documentation des objets/fonctions dans le minibuffer -#+BEGIN_SRC emacs-lisp - (use-package irony-eldoc - :ensure t - :config - (add-hook 'irony-mode-hook #'irony-eldoc)) +** C++ +Transforme Emacs en un véritable IDE en utilisant ~lsp~. + +De nombreuses fonctionnalités sont accessibles au clic droit de la +souris. On peut accéder à de nombreuses fonctionnalités en utilisant +les raccourcis contextuels proposés par ~hydra~ en faisant ~C-l~. En +passant la souris sur le texte, un /popup/ décrivant l'élément est +affiché. + +On rappelle quelques raccourcis utiles : +| Raccourci | Description | +|-------------------+-------------------------------------------------------| +| ~M-.~ ou ~C-<mouse1>~ | Se rend à la déclaration de l'élément sous le curseur | +| ~M-?~ | Affiche les références à l'élément sous le curseur | +| ~C-l~ | Débute l'interaction ~hydra~ | +| ~C-<mouse3>~ | Menu contextuel | +#+BEGIN_SRC emacs-lisp + (unless (package-installed-p 'use-package) + (package-refresh-contents) + (package-install 'use-package)) + (eval-when-compile + (require 'use-package)) + (require 'bind-key) + (setq use-package-always-ensure t) + + ;; config basique de lsp + (use-package lsp-mode + :init + (setq lsp-keymap-prefix "C-c l") + ;; on vire les recommandations de codage : un peu lourd + (setq lsp-ui-sideline-show-code-actions nil) + (setq lsp-modeline-code-actions-enable nil) + ;; on vire l'affichage de la doc sous le curseur : trop invasif + (setq lsp-ui-doc-show-with-cursor nil) + ;; on vire les ajouts de code automatiques à la complétion : insupportable + (setq lsp-completion-enable-additional-text-edit nil) + ;; barre de localisation + (setq lsp-headerline-breadcrumb-enable t) + :hook ((c++-mode . lsp) + (lsp-mode . lsp-enable-which-key-integration)) + :custom-face + (lsp-face-highlight-textual ((t (:inherit highlight :underline t)))) + :commands lsp) + + ;; on utilise lsp-ui et ivy + (use-package lsp-ui :commands lsp-ui-mode) + (use-package lsp-ivy :commands lsp-ivy-workspace-symbol) + + (use-package treemacs + :ensure t) + + (use-package lsp-treemacs :commands lsp-treemacs-errors-list) + + ;; autres paquets de base + (setq package-selected-packages '(yasnippet tramp company-lsp + projectile hydra flycheck company avy which-key ivy-xref)) + + (when (cl-find-if-not #'package-installed-p package-selected-packages) + (package-refresh-contents) + (mapc #'package-install package-selected-packages)) + + (add-hook 'c-mode-hook 'lsp) + (add-hook 'c++-mode-hook 'lsp) + (setq lsp-keymap-prefix "C-c l") + + ; réactivité de lsp + (setq lsp-idle-delay 0.1) + + (with-eval-after-load 'lsp-mode + (add-hook 'lsp-mode-hook #'lsp-enable-which-key-integration) + ;; (lsp-register-client + ;; ;; *** Mettre le chemin complet vers clangd *** + ;; (make-lsp-client :new-connection (lsp-tramp-connection "/home/test-emacs/bin/clangd") + ;; :major-modes '(c++-mode) + ;; :remote? t + ;; :server-id 'clangd-remote)) + ) #+END_SRC *** Formatage automatique : ~clang-format~ @@ -503,15 +549,6 @@ Améliore le visuel des parenthèses #+END_SRC ** FlyCheck -On branche ~FlyCheck~ à ~Irony~ pour une analyse des erreurs à la volée. -#+BEGIN_SRC emacs-lisp - (use-package flycheck-irony - :ensure t - :config - (eval-after-load 'flycheck - '(add-hook 'flycheck-mode-hook #'flycheck-irony-setup))) -#+END_SRC - On charge ~FlyCheck~ #+BEGIN_SRC emacs-lisp (use-package flycheck @@ -966,18 +1003,6 @@ Correcteur orthographique à la volée. (setq flyspell-issue-message-flag nil) #+END_SRC -** C++ -Activation des ~ggtags~ -#+BEGIN_SRC emacs-lisp - (use-package ggtags - :ensure t - :config - (add-hook 'c-mode-common-hook - (lambda () - (when (derived-mode-p 'c-mode 'c++-mode 'java-mode) - (ggtags-mode 1))))) -#+END_SRC - ** Compilation Active le rendu des couleurs ANSI dans le /buffer/ de compilation #+BEGIN_SRC emacs-lisp @@ -995,23 +1020,6 @@ Active le rendu des couleurs ANSI dans le /buffer/ de compilation '"TERM=xterm-256color") #+END_SRC -Ferme automatiquement le /buffer/ de compilation lorsqu'il n'y a aucune -erreur (/warnings/ compris). -#+BEGIN_SRC emacs-lisp - ;; (setq compilation-finish-function - ;; (lambda (buf str) - ;; (if (string-match "*Compilation*" (buffer-name buf)) - ;; (if (string-match "abnormally" str) - ;; (message "There were errors :-(") - ;; ;;no errors, make the compilation window go away in 1 second - ;; (run-at-time 1 nil - ;; (lambda (buf) - ;; (delete-windows-on buf) - ;; (bury-buffer buf)) - ;; buf) - ;; (message "No errors :-)"))))) -#+END_SRC - Force la création du /buffer/ de compilation en dessous #+BEGIN_SRC emacs-lisp (defun display-buffer-by-splitting-largest (buffer force-other-window) diff --git a/Configuration.pdf b/Configuration.pdf index eca3f3c183082f22b58cc5bfb5ef6a269bb894e1..1313b56fce713dfe853000de8b635ea3066e5902 100644 Binary files a/Configuration.pdf and b/Configuration.pdf differ diff --git a/Installation.html b/Installation.html index c85bed6fc5f34daca7a42470644ea0e119f4f048..5f76ec43632c4ee3e1053e94d855c3c1c6be4768 100644 --- a/Installation.html +++ b/Installation.html @@ -3,7 +3,7 @@ "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-06-24 mer. 00:13 --> +<!-- 2021-02-02 mar. 07:52 --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Installation</title> @@ -160,6 +160,19 @@ .footdef { margin-bottom: 1em; } .figure { padding: 1em; } .figure p { text-align: center; } + .equation-container { + display: table; + text-align: center; + width: 100%; + } + .equation { + vertical-align: middle; + } + .equation-label { + display: table-cell; + text-align: right; + vertical-align: middle; + } .inlinetask { padding: 10px; border: 2px solid gray; @@ -190,7 +203,7 @@ @licstart The following is the entire license notice for the JavaScript code in this tag. -Copyright (C) 2012-2019 Free Software Foundation, Inc. +Copyright (C) 2012-2020 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 @@ -239,24 +252,24 @@ for the JavaScript code in this tag. <h2>Table des matières</h2> <div id="text-table-of-contents"> <ul> -<li><a href="#orgd6ec181">1. Installation d'Emacs</a> +<li><a href="#org35191c6">1. Installation d'Emacs</a> <ul> -<li><a href="#orge61a756">1.1. Version proposée par la distribution</a></li> -<li><a href="#org63f4f02">1.2. Préparation de l'installation</a></li> -<li><a href="#org1bbc91e">1.3. Nettoyage du système.</a></li> +<li><a href="#org9916701">1.1. Version proposée par la distribution</a></li> +<li><a href="#orgd785716">1.2. Préparation de l'installation</a></li> +<li><a href="#orgdc249d2">1.3. Nettoyage du système.</a></li> </ul> </li> -<li><a href="#orgbf44be5">2. Récupérer la configuration</a> +<li><a href="#orgaa372d9">2. Récupérer la configuration</a> <ul> -<li><a href="#org4d8abf5">2.1. Sauvegarde de l'ancienne configuration</a></li> -<li><a href="#orgdd3985f">2.2. Téléchargement de la configuration</a></li> +<li><a href="#org10e0321">2.1. Sauvegarde de l'ancienne configuration</a></li> +<li><a href="#org2f98a77">2.2. Téléchargement de la configuration</a></li> </ul> </li> -<li><a href="#orgdc1f296">3. Python</a></li> -<li><a href="#orga6e0eda">4. Global</a></li> -<li><a href="#orgc91ca47">5. C++</a></li> -<li><a href="#orge2a467e">6. Chargement accéléré</a></li> -<li><a href="#orgd8f8555">7. Mise à jour</a></li> +<li><a href="#org1a9d8bb">3. Python</a></li> +<li><a href="#org856cf88">4. Global</a></li> +<li><a href="#orgeaf19a7">5. C++</a></li> +<li><a href="#orgfc5b13d">6. Chargement accéléré</a></li> +<li><a href="#orgd155cd9">7. Mise à jour</a></li> </ul> </div> </div> @@ -288,8 +301,8 @@ certain temps. Ce ne sera évidemment plus le cas par la suite. </div> -<div id="outline-container-orgd6ec181" class="outline-2"> -<h2 id="orgd6ec181"><span class="section-number-2">1</span> Installation d'Emacs</h2> +<div id="outline-container-org35191c6" class="outline-2"> +<h2 id="org35191c6"><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 @@ -303,8 +316,8 @@ des paquets ou l'installer manuellement. </p> </div> -<div id="outline-container-orge61a756" class="outline-3"> -<h3 id="orge61a756"><span class="section-number-3">1.1</span> Version proposée par la distribution</h3> +<div id="outline-container-org9916701" class="outline-3"> +<h3 id="org9916701"><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 @@ -350,8 +363,8 @@ paragraphe suivant. </div> </div> -<div id="outline-container-org63f4f02" class="outline-3"> -<h3 id="org63f4f02"><span class="section-number-3">1.2</span> Préparation de l'installation</h3> +<div id="outline-container-orgd785716" class="outline-3"> +<h3 id="orgd785716"><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 @@ -406,8 +419,8 @@ On peut vérifier à nouveau que tout s'est bien passé en exécutant </div> </div> -<div id="outline-container-org1bbc91e" class="outline-3"> -<h3 id="org1bbc91e"><span class="section-number-3">1.3</span> Nettoyage du système.</h3> +<div id="outline-container-orgdc249d2" class="outline-3"> +<h3 id="orgdc249d2"><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 @@ -422,12 +435,12 @@ fonctionne de manière optimale, il convient de les supprimer. </div> </div> -<div id="outline-container-orgbf44be5" class="outline-2"> -<h2 id="orgbf44be5"><span class="section-number-2">2</span> Récupérer la configuration</h2> +<div id="outline-container-orgaa372d9" class="outline-2"> +<h2 id="orgaa372d9"><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-org4d8abf5" class="outline-3"> -<h3 id="org4d8abf5"><span class="section-number-3">2.1</span> Sauvegarde de l'ancienne configuration</h3> +<div id="outline-container-org10e0321" class="outline-3"> +<h3 id="org10e0321"><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 @@ -448,8 +461,8 @@ mv ~/.emacs* ~/sauvegarde.emacs-<span class="org-sh-quoted-exec">`date +%Y%m%d`< </div> </div> -<div id="outline-container-orgdd3985f" class="outline-3"> -<h3 id="orgdd3985f"><span class="section-number-3">2.2</span> Téléchargement de la configuration</h3> +<div id="outline-container-org2f98a77" class="outline-3"> +<h3 id="org2f98a77"><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 @@ -504,8 +517,8 @@ faut cependant installer quelques outils supplémentaires. </div> </div> -<div id="outline-container-orgdc1f296" class="outline-2"> -<h2 id="orgdc1f296"><span class="section-number-2">3</span> Python</h2> +<div id="outline-container-org1a9d8bb" class="outline-2"> +<h2 id="org1a9d8bb"><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 @@ -551,8 +564,8 @@ Il convient évidemment de répondre <code>y</code> à cette question. </div> </div> -<div id="outline-container-orga6e0eda" class="outline-2"> -<h2 id="orga6e0eda"><span class="section-number-2">4</span> Global</h2> +<div id="outline-container-org856cf88" class="outline-2"> +<h2 id="org856cf88"><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>. @@ -565,8 +578,8 @@ On recommande aussi d'installer les <code>ggtags</code>. </div> </div> -<div id="outline-container-orgc91ca47" class="outline-2"> -<h2 id="orgc91ca47"><span class="section-number-2">5</span> C++</h2> +<div id="outline-container-orgeaf19a7" class="outline-2"> +<h2 id="orgeaf19a7"><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 @@ -575,7 +588,7 @@ configurations supplémentaires. </p> <p> -On commence donc par installer <code>clang-9</code>. Il faut s'assurer que le dépôt +On commence donc par installer <code>clang-10</code>. Il faut s'assurer que le dépôt contenant fait partie de la liste des dépôts. Pour les systèmes <code>Ubuntu</code>, exécuter </p> @@ -596,7 +609,7 @@ Pour les systèmes <code>Debian</code> On peut alors lancer l'installation proprement dite. </p> <div class="org-src-container"> -<pre class="src src-bash">sudo apt -y install clang-9 libclang-9-dev clang-format-9 +<pre class="src src-bash">sudo apt -y install clang-10 clangd-10 libclang-10-dev clang-format-10 </pre> </div> @@ -606,9 +619,9 @@ 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 +ln -s /usr/bin/clang++-10 ~/bin/clang++ +ln -s /usr/bin/clang-10 ~/bin/clang +ln -s /usr/bin/clang-format-10 ~/bin/clang-format </pre> </div> @@ -624,38 +637,11 @@ Il faut alors ajouter <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 id="outline-container-orge2a467e" class="outline-2"> -<h2 id="orge2a467e"><span class="section-number-2">6</span> Chargement accéléré</h2> +<div id="outline-container-orgfc5b13d" class="outline-2"> +<h2 id="orgfc5b13d"><span class="section-number-2">6</span> Chargement accéléré</h2> <div class="outline-text-2" id="text-6"> <p> Après s'être assuré assuré que la configuration fonctionne @@ -683,8 +669,8 @@ transparence. </div> </div> -<div id="outline-container-orgd8f8555" class="outline-2"> -<h2 id="orgd8f8555"><span class="section-number-2">7</span> Mise à jour</h2> +<div id="outline-container-orgd155cd9" class="outline-2"> +<h2 id="orgd155cd9"><span class="section-number-2">7</span> Mise à jour</h2> <div class="outline-text-2" id="text-7"> <p> Pour mettre à jour la configuration, ne suffit pas (en général) de @@ -711,7 +697,7 @@ fermeture. </div> </div> <div id="postamble" class="status"> -<p class="date">Created: 2020-06-24 mer. 00:13</p> +<p class="date">Created: 2021-02-02 mar. 07:52</p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> </div> </body> diff --git a/Installation.org b/Installation.org index 2de3f77f92ed784ff5a12caacf63b81a84290853..498f2ab5ca19d3b9638c49901e624c49be5bd810 100644 --- a/Installation.org +++ b/Installation.org @@ -203,7 +203,7 @@ Enfin, pour configurer correctement l'environnement de développement pour le ~C++~, il faut effectuer quelques installations et configurations supplémentaires. -On commence donc par installer ~clang-9~. Il faut s'assurer que le dépôt +On commence donc par installer ~clang-10~. Il faut s'assurer que le dépôt contenant fait partie de la liste des dépôts. Pour les systèmes ~Ubuntu~, exécuter #+BEGIN_SRC bash :eval no :exports code @@ -217,16 +217,16 @@ Pour les systèmes ~Debian~ On peut alors lancer l'installation proprement dite. #+BEGIN_SRC bash :eval no :exports code - sudo apt -y install clang-9 libclang-9-dev clang-format-9 + sudo apt -y install clang-10 clangd-10 libclang-10-dev clang-format-10 #+END_SRC On va maintenant aider Emacs à trouver ces bonnes versions de compilateur. Pour cela, on va exécuter les commandes suivantes. #+BEGIN_SRC bash :eval no :exports code 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 + ln -s /usr/bin/clang++-10 ~/bin/clang++ + ln -s /usr/bin/clang-10 ~/bin/clang + ln -s /usr/bin/clang-format-10 ~/bin/clang-format #+END_SRC Il faut alors ajouter @@ -237,23 +237,6 @@ Il faut alors ajouter /shell/, on modifiera la variable ~PATH~ de la manière adéquate pour que =~/bin= apparaisse au début. -À ce moment, le plus simple est de se déconnecter pour être sûr que -cette modification est bien prise en compte. - -Il reste maintenant à compiler le serveur ~irony~ pour terminer -l'installation. Pour cela, on doit installer ~CMake~. -#+BEGIN_SRC bash :eval no :exports code - sudo apt -y install cmake -#+END_SRC - -On relance ensuite Emacs, et on exécute la commande -#+BEGIN_SRC bash :eval no :exports code - M-x irony-install-server -#+END_SRC -Emacs propose alors une commande de compilation dans le /minibuffer/. Il -suffit de presser ~RET~. La compilation devrait se dérouler sans -problème. - * Chargement accéléré Après s'être assuré assuré que la configuration fonctionne correctement, on peut éventuellement améliorer le confort diff --git a/Installation.pdf b/Installation.pdf index 42c1a570582f6ee1acd7fc4cf35c66294f95c303..8923ae8661439810cbac3990a032658640f38bd8 100644 Binary files a/Installation.pdf and b/Installation.pdf differ diff --git a/Readme.html b/Readme.html index 6ee6769d173c22dc34b79b803c8b0efc344c884a..93f7c310adc610d5d2535f3a0b8b05b4a8fc4538 100644 --- a/Readme.html +++ b/Readme.html @@ -3,7 +3,7 @@ "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-06-24 mer. 00:13 --> +<!-- 2021-02-02 mar. 07:52 --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>‎</title> @@ -160,6 +160,19 @@ .footdef { margin-bottom: 1em; } .figure { padding: 1em; } .figure p { text-align: center; } + .equation-container { + display: table; + text-align: center; + width: 100%; + } + .equation { + vertical-align: middle; + } + .equation-label { + display: table-cell; + text-align: right; + vertical-align: middle; + } .inlinetask { padding: 10px; border: 2px solid gray; @@ -190,7 +203,7 @@ @licstart The following is the entire license notice for the JavaScript code in this tag. -Copyright (C) 2012-2019 Free Software Foundation, Inc. +Copyright (C) 2012-2020 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 @@ -238,16 +251,16 @@ for the JavaScript code in this tag. <h2>Table des matières</h2> <div id="text-table-of-contents"> <ul> -<li><a href="#orgeedd195">1. Installation</a></li> -<li><a href="#orgf351dd7">2. Premiers pas avec Emacs</a></li> -<li><a href="#orgce4020e">3. Configuration</a></li> -<li><a href="#org5f77865">4. À propos de cette configuration</a></li> +<li><a href="#org6c70432">1. Installation</a></li> +<li><a href="#org23355fa">2. Premiers pas avec Emacs</a></li> +<li><a href="#org1f23e92">3. Configuration</a></li> +<li><a href="#org8b70f00">4. À propos de cette configuration</a></li> </ul> </div> </div> -<div id="outline-container-orgeedd195" class="outline-2"> -<h2 id="orgeedd195"><span class="section-number-2">1</span> Installation</h2> +<div id="outline-container-org6c70432" class="outline-2"> +<h2 id="org6c70432"><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 à @@ -256,8 +269,8 @@ pas. </div> </div> -<div id="outline-container-orgf351dd7" class="outline-2"> -<h2 id="orgf351dd7"><span class="section-number-2">2</span> Premiers pas avec Emacs</h2> +<div id="outline-container-org23355fa" class="outline-2"> +<h2 id="org23355fa"><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 @@ -273,8 +286,8 @@ ainsi que quelques raccourcis. </div> </div> -<div id="outline-container-orgce4020e" class="outline-2"> -<h2 id="orgce4020e"><span class="section-number-2">3</span> Configuration</h2> +<div id="outline-container-org1f23e92" class="outline-2"> +<h2 id="org1f23e92"><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 @@ -283,8 +296,8 @@ La configuration utilisée est définie dans le fichier </div> </div> -<div id="outline-container-org5f77865" class="outline-2"> -<h2 id="org5f77865"><span class="section-number-2">4</span> À propos de cette configuration</h2> +<div id="outline-container-org8b70f00" class="outline-2"> +<h2 id="org8b70f00"><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 @@ -309,7 +322,7 @@ For a list of all posts and videos check out </div> </div> <div id="postamble" class="status"> -<p class="date">Created: 2020-06-24 mer. 00:13</p> +<p class="date">Created: 2021-02-02 mar. 07:52</p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> </div> </body> diff --git a/Readme.pdf b/Readme.pdf index edf52d51ca1e339673dfde42576d8e94a962fab2..c25443bd8a0316d716d380d352486219c5298788 100644 Binary files a/Readme.pdf and b/Readme.pdf differ diff --git a/Tutoriel.html b/Tutoriel.html index ed8931ce9765fca64b18fd1c8d2642e8e6f9b6e7..582f4b00c3533b16ea8d6fefd48327c79e5d0644 100644 --- a/Tutoriel.html +++ b/Tutoriel.html @@ -3,7 +3,7 @@ "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-06-24 mer. 00:13 --> +<!-- 2021-02-02 mar. 07:52 --> <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> @@ -160,6 +160,19 @@ .footdef { margin-bottom: 1em; } .figure { padding: 1em; } .figure p { text-align: center; } + .equation-container { + display: table; + text-align: center; + width: 100%; + } + .equation { + vertical-align: middle; + } + .equation-label { + display: table-cell; + text-align: right; + vertical-align: middle; + } .inlinetask { padding: 10px; border: 2px solid gray; @@ -190,7 +203,7 @@ @licstart The following is the entire license notice for the JavaScript code in this tag. -Copyright (C) 2012-2019 Free Software Foundation, Inc. +Copyright (C) 2012-2020 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 @@ -261,83 +274,82 @@ for the JavaScript code in this tag. <h2>Table des matières</h2> <div id="text-table-of-contents"> <ul> -<li><a href="#org869ebc5">1. Historique</a></li> -<li><a href="#org68872fe">2. Lancement d'Emacs</a></li> -<li><a href="#orgc7deae7">3. Prise en main</a> +<li><a href="#orgfd15d5f">1. Historique</a></li> +<li><a href="#org4abc37d">2. Lancement d'Emacs</a></li> +<li><a href="#org62d9413">3. Prise en main</a> <ul> -<li><a href="#orgf445801">3.1. Interface</a> +<li><a href="#org4f2fb9a">3.1. Interface</a> <ul> -<li><a href="#org46a35c2">3.1.1. <i>Buffers</i></a></li> -<li><a href="#org8c92c30">3.1.2. <i>Windows</i></a></li> -<li><a href="#orgee4ddad">3.1.3. Cadre (<i>frames</i>)</a></li> -<li><a href="#orgfd32851">3.1.4. <i>Modeline</i></a></li> -<li><a href="#org91ea2bf">3.1.5. <i>Minibuffer</i></a></li> +<li><a href="#org79f9ff2">3.1.1. <i>Buffers</i></a></li> +<li><a href="#org3149d71">3.1.2. <i>Windows</i></a></li> +<li><a href="#orgab1867f">3.1.3. Cadre (<i>frames</i>)</a></li> +<li><a href="#org3b8c8c3">3.1.4. <i>Modeline</i></a></li> +<li><a href="#org3ba71ec">3.1.5. <i>Minibuffer</i></a></li> </ul> </li> -<li><a href="#org8780d52">3.2. Fonctions</a></li> +<li><a href="#org2ad55f5">3.2. Fonctions</a></li> </ul> </li> -<li><a href="#org8f3fce7">4. Quelques raccourcis</a> +<li><a href="#org607cbcd">4. Quelques raccourcis</a> <ul> -<li><a href="#org9d38e18">4.1. Commandes générales</a></li> -<li><a href="#orga2ef81b">4.2. <i>minibuffer</i></a></li> -<li><a href="#orgd51d18e">4.3. Obtenir de l'aide</a></li> -<li><a href="#orga680db3">4.4. Naviguer dans un <i>buffer</i></a></li> -<li><a href="#orgf16bbc9">4.5. Marquer une zone d'un <i>buffer</i></a></li> -<li><a href="#org1990789">4.6. Éditer le contenu d'un <i>buffer</i></a></li> -<li><a href="#org9e4b697">4.7. Gestion des <i>buffers</i>, fenêtres et cadres</a> +<li><a href="#orgf7067b3">4.1. Commandes générales</a></li> +<li><a href="#org6e84cf9">4.2. <i>minibuffer</i></a></li> +<li><a href="#org1f9ca5e">4.3. Obtenir de l'aide</a></li> +<li><a href="#orga4907ca">4.4. Naviguer dans un <i>buffer</i></a></li> +<li><a href="#orgb4d0481">4.5. Marquer une zone d'un <i>buffer</i></a></li> +<li><a href="#org9409fd9">4.6. Éditer le contenu d'un <i>buffer</i></a></li> +<li><a href="#orgb1b0a52">4.7. Gestion des <i>buffers</i>, fenêtres et cadres</a> <ul> -<li><a href="#orgb2c2cd9">4.7.1. <i>buffers</i></a></li> -<li><a href="#org94387d3">4.7.2. Fenêtres</a></li> -<li><a href="#org97e15a3">4.7.3. Cadres (<i>frames</i>)</a></li> +<li><a href="#orga6f1d97">4.7.1. <i>buffers</i></a></li> +<li><a href="#org5042de0">4.7.2. Fenêtres</a></li> +<li><a href="#org7b5456d">4.7.3. Cadres (<i>frames</i>)</a></li> </ul> </li> -<li><a href="#org5729d4e">4.8. Fichiers</a></li> -<li><a href="#org43a4f49">4.9. Recherche</a></li> -<li><a href="#orga5da18b">4.10. Remplacement de texte</a></li> -<li><a href="#org0024111">4.11. Répétitions et macros</a></li> -<li><a href="#orgddd4402">4.12. Complétion</a></li> +<li><a href="#org0a67876">4.8. Fichiers</a></li> +<li><a href="#orgc27f06a">4.9. Recherche</a></li> +<li><a href="#orgbdac216">4.10. Remplacement de texte</a></li> +<li><a href="#orgd58f9ea">4.11. Répétitions et macros</a></li> +<li><a href="#orgf90567b">4.12. Complétion</a></li> </ul> </li> -<li><a href="#org57de87c">5. Modes utiles</a> +<li><a href="#org39dda89">5. Modes utiles</a> <ul> -<li><a href="#orgb5d69cf">5.1. Modes utilitaires</a> +<li><a href="#org8edc7d1">5.1. Modes utilitaires</a> <ul> -<li><a href="#org139711d">5.1.1. Flyspell</a></li> -<li><a href="#orgb20ac43">5.1.2. FlyCheck</a></li> +<li><a href="#org89cbbb4">5.1.1. Flyspell</a></li> +<li><a href="#org57f7c02">5.1.2. FlyCheck</a></li> </ul> </li> -<li><a href="#orgf9f1df4">5.2. Interfaces avec <code>git</code></a> +<li><a href="#org73f7f8c">5.2. Interfaces avec <code>git</code></a> <ul> -<li><a href="#org0e25d88">5.2.1. GitGutter</a></li> -<li><a href="#org3d16fd8">5.2.2. Magit</a></li> +<li><a href="#org2ce2cb9">5.2.1. GitGutter</a></li> +<li><a href="#orgd629488">5.2.2. Magit</a></li> </ul> </li> -<li><a href="#orgc611964">5.3. Rédaction de documents LaTeX</a> +<li><a href="#org6d15d06">5.3. Rédaction de documents LaTeX</a> <ul> -<li><a href="#orgfdc1933">5.3.1. AUCTeX</a></li> -<li><a href="#org8511167">5.3.2. RefTeX</a></li> +<li><a href="#org6d6c20b">5.3.1. AUCTeX</a></li> +<li><a href="#org4b74bdf">5.3.2. RefTeX</a></li> </ul> </li> -<li><a href="#orgfd5d7e0">5.4. Programmation</a> +<li><a href="#org064b31d">5.4. Programmation</a> <ul> -<li><a href="#org194da7d">5.4.1. Python</a></li> -<li><a href="#org57883d5">5.4.2. C++</a></li> -<li><a href="#orgada33ae">5.4.3. Tags</a></li> -<li><a href="#org020062b">5.4.4. YASnippet</a></li> +<li><a href="#org2fab2f8">5.4.1. Python</a></li> +<li><a href="#orgaa1c6cc">5.4.2. C++</a></li> +<li><a href="#orgc444ccd">5.4.3. YASnippet</a></li> </ul> </li> </ul> </li> -<li><a href="#org21bf50d">6. Pour aller plus loin</a> +<li><a href="#orgcc3782a">6. Pour aller plus loin</a> <ul> -<li><a href="#orgd666de1">6.1. Org-mode</a></li> -<li><a href="#org1963ec6">6.2. Pliage et dépliage avec <code>narrow-or-widen-dwim</code></a></li> -<li><a href="#org2c2ce3e">6.3. Autres modes installés</a></li> -<li><a href="#org8f33136">6.4. Personnalisation</a> +<li><a href="#orgcfcb89f">6.1. Org-mode</a></li> +<li><a href="#orgd0cb9bc">6.2. Pliage et dépliage avec <code>narrow-or-widen-dwim</code></a></li> +<li><a href="#org6f718b1">6.3. Autres modes installés</a></li> +<li><a href="#orgf346812">6.4. Personnalisation</a> <ul> -<li><a href="#org7aaea55">6.4.1. custom.el</a></li> -<li><a href="#org7324f5e">6.4.2. Emacs lisp</a></li> +<li><a href="#orgd23a4f3">6.4.1. custom.el</a></li> +<li><a href="#org5923d3c">6.4.2. Emacs lisp</a></li> </ul> </li> </ul> @@ -347,8 +359,8 @@ for the JavaScript code in this tag. </div> -<div id="outline-container-org869ebc5" class="outline-2"> -<h2 id="org869ebc5"><span class="section-number-2">1</span> Historique</h2> +<div id="outline-container-orgfd15d5f" class="outline-2"> +<h2 id="orgfd15d5f"><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éé @@ -369,8 +381,8 @@ Emacs est l'un des outils les plus utilisés pour le développement. </div> </div> -<div id="outline-container-org68872fe" class="outline-2"> -<h2 id="org68872fe"><span class="section-number-2">2</span> Lancement d'Emacs</h2> +<div id="outline-container-org4abc37d" class="outline-2"> +<h2 id="org4abc37d"><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 @@ -402,8 +414,8 @@ utiliser la configuration locale. </div> </div> -<div id="outline-container-orgc7deae7" class="outline-2"> -<h2 id="orgc7deae7"><span class="section-number-2">3</span> Prise en main</h2> +<div id="outline-container-org62d9413" class="outline-2"> +<h2 id="org62d9413"><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 @@ -435,8 +447,8 @@ puis sur la touche <code>t</code> seulement. </p> </div> -<div id="outline-container-orgf445801" class="outline-3"> -<h3 id="orgf445801"><span class="section-number-3">3.1</span> Interface</h3> +<div id="outline-container-org4f2fb9a" class="outline-3"> +<h3 id="org4f2fb9a"><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 @@ -447,8 +459,8 @@ concepts ne sont donc pas si communs de nos jours. </p> </div> -<div id="outline-container-org46a35c2" class="outline-4"> -<h4 id="org46a35c2"><span class="section-number-4">3.1.1</span> <i>Buffers</i></h4> +<div id="outline-container-org79f9ff2" class="outline-4"> +<h4 id="org79f9ff2"><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 @@ -457,21 +469,21 @@ correspond en général à la vue d'un fichier édité. </div> </div> -<div id="outline-container-org8c92c30" class="outline-4"> -<h4 id="org8c92c30"><span class="section-number-4">3.1.2</span> <i>Windows</i></h4> +<div id="outline-container-org3149d71" class="outline-4"> +<h4 id="org3149d71"><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="#orgf981b03">1</a>, où un <a href="#org8bc4c25">cadre</a> Emacs est découpé en trois +figure <a href="#org7089324">1</a>, où un <a href="#org9f1e54c">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="orgf981b03" class="figure"> +<div id="org7089324" class="figure"> <p><img src="emacs-windows.png" alt="emacs-windows.png" /> </p> <p><span class="figure-number">Figure 1 : </span>Trois fenêtres affichées dans Emacs</p> @@ -479,8 +491,8 @@ et il peut être modifié dans n'importe laquelle de ses vues. </div> </div> -<div id="outline-container-orgee4ddad" class="outline-4"> -<h4 id="orgee4ddad"><span class="section-number-4">3.1.3</span> <a id="org8bc4c25"></a> Cadre (<i>frames</i>)</h4> +<div id="outline-container-orgab1867f" class="outline-4"> +<h4 id="orgab1867f"><span class="section-number-4">3.1.3</span> <a id="org9f1e54c"></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 @@ -489,7 +501,7 @@ de plusieurs fenêtres du gestionnaire graphique. </p> <p> -Dans l'exemple de la figure <a href="#org845de59">2</a>, il s'agit bien de la même +Dans l'exemple de la figure <a href="#org7367172">2</a>, il s'agit bien de la même instance d'Emacs : 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 @@ -497,7 +509,7 @@ vue d'un <b>même</b> <i>buffer</i> d'édition, c'est-à-dire que le <b>même</b </p> -<div id="org845de59" class="figure"> +<div id="org7367172" class="figure"> <p><img src="emacs-frames.png" alt="emacs-frames.png" /> </p> <p><span class="figure-number">Figure 2 : </span>Deux cadres (<i>frames</i>) Emacs affichant le même <i>buffer</i></p> @@ -505,20 +517,20 @@ vue d'un <b>même</b> <i>buffer</i> d'édition, c'est-à-dire que le <b>même</b </div> </div> -<div id="outline-container-orgfd32851" class="outline-4"> -<h4 id="orgfd32851"><span class="section-number-4">3.1.4</span> <i>Modeline</i></h4> +<div id="outline-container-org3b8c8c3" class="outline-4"> +<h4 id="org3b8c8c3"><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="#org108821f">3</a>, le mode majeur est <code>CMake</code>, le +action sur la figure <a href="#org68b050b">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="org108821f" class="figure"> +<div id="org68b050b" class="figure"> <p><img src="emacs-modeline.png" alt="emacs-modeline.png" /> </p> <p><span class="figure-number">Figure 3 : </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> @@ -526,21 +538,21 @@ branche <code>develop</code>. </div> </div> -<div id="outline-container-org91ea2bf" class="outline-4"> -<h4 id="org91ea2bf"><span class="section-number-4">3.1.5</span> <i>Minibuffer</i></h4> +<div id="outline-container-org3ba71ec" class="outline-4"> +<h4 id="org3ba71ec"><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="#org7d094d5">4</a> (ici une exécution de <code>grep</code> dans Emacs en +figure <a href="#org30746d0">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="org7d094d5" class="figure"> +<div id="org30746d0" class="figure"> <p><img src="emacs-minibuffer.png" alt="emacs-minibuffer.png" /> </p> <p><span class="figure-number">Figure 4 : </span>Le <i>minibuffer</i> en action. Préparation de l'exécution d'une commande <code>grep</code> dans Emacs.</p> @@ -549,8 +561,8 @@ taper <code>M-x</code>. </div> </div> -<div id="outline-container-org8780d52" class="outline-3"> -<h3 id="org8780d52"><span class="section-number-3">3.2</span> Fonctions</h3> +<div id="outline-container-org2ad55f5" class="outline-3"> +<h3 id="org2ad55f5"><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 redéfinie @@ -580,8 +592,8 @@ plutôt que simplement interprété ont corrigé ce défaut. </div> </div> -<div id="outline-container-org8f3fce7" class="outline-2"> -<h2 id="org8f3fce7"><span class="section-number-2">4</span> Quelques raccourcis</h2> +<div id="outline-container-org607cbcd" class="outline-2"> +<h2 id="org607cbcd"><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 @@ -619,8 +631,8 @@ contextuelle. </p> </div> -<div id="outline-container-org9d38e18" class="outline-3"> -<h3 id="org9d38e18"><span class="section-number-3">4.1</span> Commandes générales</h3> +<div id="outline-container-orgf7067b3" class="outline-3"> +<h3 id="orgf7067b3"><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"> @@ -666,8 +678,8 @@ contextuelle. </div> </div> -<div id="outline-container-orga2ef81b" class="outline-3"> -<h3 id="orga2ef81b"><span class="section-number-3">4.2</span> <i>minibuffer</i></h3> +<div id="outline-container-org6e84cf9" class="outline-3"> +<h3 id="org6e84cf9"><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 @@ -715,8 +727,8 @@ exemple) </div> </div> -<div id="outline-container-orgd51d18e" class="outline-3"> -<h3 id="orgd51d18e"><span class="section-number-3">4.3</span> Obtenir de l'aide</h3> +<div id="outline-container-org1f9ca5e" class="outline-3"> +<h3 id="org1f9ca5e"><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 @@ -761,8 +773,8 @@ On peut lancer l'aide en tapant <code>C-h</code> et en suivant les indications d </div> </div> -<div id="outline-container-orga680db3" class="outline-3"> -<h3 id="orga680db3"><span class="section-number-3">4.4</span> Naviguer dans un <i>buffer</i></h3> +<div id="outline-container-orga4907ca" class="outline-3"> +<h3 id="orga4907ca"><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 @@ -858,8 +870,8 @@ flèches). </div> </div> -<div id="outline-container-orgf16bbc9" class="outline-3"> -<h3 id="orgf16bbc9"><span class="section-number-3">4.5</span> Marquer une zone d'un <i>buffer</i></h3> +<div id="outline-container-orgb4d0481" class="outline-3"> +<h3 id="orgb4d0481"><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 @@ -912,8 +924,8 @@ fonction par exemple, ce qui permet de facilement les sélectionner. </div> </div> -<div id="outline-container-org1990789" class="outline-3"> -<h3 id="org1990789"><span class="section-number-3">4.6</span> Éditer le contenu d'un <i>buffer</i></h3> +<div id="outline-container-org9409fd9" class="outline-3"> +<h3 id="org9409fd9"><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 @@ -1057,17 +1069,17 @@ 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="#orgd791208">recherches</a>. +<a href="#orgbfc33b6">recherches</a>. </p> </div> </div> -<div id="outline-container-org9e4b697" class="outline-3"> -<h3 id="org9e4b697"><span class="section-number-3">4.7</span> Gestion des <i>buffers</i>, fenêtres et cadres</h3> +<div id="outline-container-orgb1b0a52" class="outline-3"> +<h3 id="orgb1b0a52"><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-orgb2c2cd9" class="outline-4"> -<h4 id="orgb2c2cd9"><span class="section-number-4">4.7.1</span> <i>buffers</i></h4> +<div id="outline-container-orga6f1d97" class="outline-4"> +<h4 id="orga6f1d97"><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 @@ -1136,8 +1148,8 @@ Emacs invite l'utilisateur à le faire. </div> </div> -<div id="outline-container-org94387d3" class="outline-4"> -<h4 id="org94387d3"><span class="section-number-4">4.7.2</span> Fenêtres</h4> +<div id="outline-container-org5042de0" class="outline-4"> +<h4 id="org5042de0"><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"> @@ -1234,8 +1246,8 @@ Dans cette configuration, les raccourcis sont les suivants. </div> </div> -<div id="outline-container-org97e15a3" class="outline-4"> -<h4 id="org97e15a3"><span class="section-number-4">4.7.3</span> Cadres (<i>frames</i>)</h4> +<div id="outline-container-org7b5456d" class="outline-4"> +<h4 id="org7b5456d"><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"> @@ -1272,8 +1284,8 @@ Dans cette configuration, les raccourcis sont les suivants. </div> </div> -<div id="outline-container-org5729d4e" class="outline-3"> -<h3 id="org5729d4e"><span class="section-number-3">4.8</span> Fichiers</h3> +<div id="outline-container-org0a67876" class="outline-3"> +<h3 id="org0a67876"><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"> @@ -1379,10 +1391,10 @@ Une fois un fichier ouvert, il est manipulé classiquement dans le </div> </div> -<div id="outline-container-org43a4f49" class="outline-3"> -<h3 id="org43a4f49"><span class="section-number-3">4.9</span> Recherche</h3> +<div id="outline-container-orgc27f06a" class="outline-3"> +<h3 id="orgc27f06a"><span class="section-number-3">4.9</span> Recherche</h3> <div class="outline-text-3" id="text-4-9"> -<table id="orgd791208" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> +<table id="orgbfc33b6" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <colgroup> @@ -1452,14 +1464,14 @@ l'occurrence.</li> <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="#orgbcaabf3">5</a>, où on a lancé une recherche puis tapé +figure <a href="#orgc86c6f8">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="orgbcaabf3" class="figure"> +<div id="orgc86c6f8" class="figure"> <p><img src="emacs-swiper-search.png" alt="emacs-swiper-search.png" /> </p> <p><span class="figure-number">Figure 5 : </span>Exemple de recherche avec `swiper`</p> @@ -1474,8 +1486,8 @@ est possible d'ajouter des mots à la recherche en faisant à nouveau </div> </div> -<div id="outline-container-orga5da18b" class="outline-3"> -<h3 id="orga5da18b"><span class="section-number-3">4.10</span> Remplacement de texte</h3> +<div id="outline-container-orgbdac216" class="outline-3"> +<h3 id="orgbdac216"><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"> @@ -1561,8 +1573,8 @@ suivants. </div> </div> -<div id="outline-container-org0024111" class="outline-3"> -<h3 id="org0024111"><span class="section-number-3">4.11</span> Répétitions et macros</h3> +<div id="outline-container-orgd58f9ea" class="outline-3"> +<h3 id="orgd58f9ea"><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. @@ -1671,8 +1683,8 @@ suffit de taper <code>M-x cmd</code>. </div> </div> -<div id="outline-container-orgddd4402" class="outline-3"> -<h3 id="orgddd4402"><span class="section-number-3">4.12</span> Complétion</h3> +<div id="outline-container-orgf90567b" class="outline-3"> +<h3 id="orgf90567b"><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 @@ -1711,10 +1723,10 @@ 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="#org52d4d72">6</a>). +(voir figure <a href="#orgfadb32c">6</a>). </p> -<div id="org52d4d72" class="figure"> +<div id="orgfadb32c" class="figure"> <p><img src="emacs-company.png" alt="emacs-company.png" /> </p> <p><span class="figure-number">Figure 6 : </span><i>Pop-up</i> présentant les complétions possibles</p> @@ -1757,8 +1769,8 @@ argument à l'autre en tapant <code>TAB</code> et <code>S-TAB</code> (suivant et </div> </div> -<div id="outline-container-org57de87c" class="outline-2"> -<h2 id="org57de87c"><span class="section-number-2">5</span> Modes utiles</h2> +<div id="outline-container-org39dda89" class="outline-2"> +<h2 id="org39dda89"><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 @@ -1774,12 +1786,12 @@ deviendrait inévitablement obsolète. </p> </div> -<div id="outline-container-orgb5d69cf" class="outline-3"> -<h3 id="orgb5d69cf"><span class="section-number-3">5.1</span> Modes utilitaires</h3> +<div id="outline-container-org8edc7d1" class="outline-3"> +<h3 id="org8edc7d1"><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-org139711d" class="outline-4"> -<h4 id="org139711d"><span class="section-number-4">5.1.1</span> Flyspell</h4> +<div id="outline-container-org89cbbb4" class="outline-4"> +<h4 id="org89cbbb4"><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 @@ -1819,8 +1831,8 @@ configuration locale. Par exemple en <code>Python</code>, on écrit </div> </div> -<div id="outline-container-orgb20ac43" class="outline-4"> -<h4 id="orgb20ac43"><span class="section-number-4">5.1.2</span> FlyCheck</h4> +<div id="outline-container-org57f7c02" class="outline-4"> +<h4 id="org57f7c02"><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 @@ -1845,8 +1857,8 @@ localement dans un <i>buffer</i>, soit en utilisant la commande </div> </div> -<div id="outline-container-orgf9f1df4" class="outline-3"> -<h3 id="orgf9f1df4"><span class="section-number-3">5.2</span> Interfaces avec <code>git</code></h3> +<div id="outline-container-org73f7f8c" class="outline-3"> +<h3 id="org73f7f8c"><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 @@ -1858,8 +1870,8 @@ le mode <code>magit</code> à lui seul justifie l'utilisation d'Emacs. </p> </div> -<div id="outline-container-org0e25d88" class="outline-4"> -<h4 id="org0e25d88"><span class="section-number-4">5.2.1</span> GitGutter</h4> +<div id="outline-container-org2ce2cb9" class="outline-4"> +<h4 id="org2ce2cb9"><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 @@ -1908,8 +1920,8 @@ commit <code>git</code> mais pour ce genre d'opérations, on préférera utilise </div> </div> -<div id="outline-container-org3d16fd8" class="outline-4"> -<h4 id="org3d16fd8"><span class="section-number-4">5.2.2</span> Magit</h4> +<div id="outline-container-orgd629488" class="outline-4"> +<h4 id="orgd629488"><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 @@ -2023,8 +2035,8 @@ ajouter (<i>stager</i>) en sélectionnant une zone. </div> </div> -<div id="outline-container-orgc611964" class="outline-3"> -<h3 id="orgc611964"><span class="section-number-3">5.3</span> Rédaction de documents LaTeX</h3> +<div id="outline-container-org6d15d06" class="outline-3"> +<h3 id="org6d15d06"><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 @@ -2044,8 +2056,8 @@ qui ne sera pas abordé dans ce tutoriel. </p> </div> -<div id="outline-container-orgfdc1933" class="outline-4"> -<h4 id="orgfdc1933"><span class="section-number-4">5.3.1</span> AUCTeX</h4> +<div id="outline-container-org6d6c20b" class="outline-4"> +<h4 id="org6d6c20b"><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 @@ -2062,13 +2074,13 @@ associée. </div> <ol class="org-ol"> -<li><a id="org4ca49c0"></a>Typographie<br /> +<li><a id="org3b3185f"></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 +<code>C-c C-f</code> suivi 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"> @@ -2216,7 +2228,7 @@ si on utilise la commande <code>C-u C-c C-f C-b</code>, il sera transformé e </div> </li> -<li><a id="org5ed5f7b"></a>Sections<br /> +<li><a id="orgcfdff5b"></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. @@ -2252,7 +2264,7 @@ explicites. On préférera utiliser le caractère <code>-</code> plutôt que <co </div> </li> -<li><a id="org55a34de"></a>Environnements<br /> +<li><a id="org71f8349"></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 @@ -2293,7 +2305,7 @@ curseur est placé entre les balises. </div> </li> -<li><a id="org01eb469"></a>Compilation et visualisation<br /> +<li><a id="org9c53c97"></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"> @@ -2430,8 +2442,8 @@ raccourcis utiles pour la visualisation. </ol> </div> -<div id="outline-container-org8511167" class="outline-4"> -<h4 id="org8511167"><span class="section-number-4">5.3.2</span> RefTeX</h4> +<div id="outline-container-org4b74bdf" class="outline-4"> +<h4 id="org4b74bdf"><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 @@ -2484,8 +2496,8 @@ déroule soit dans le <i>minibuffer</i> soit dans un <i>buffer</i> annexe. </div> </div> -<div id="outline-container-orgfd5d7e0" class="outline-3"> -<h3 id="orgfd5d7e0"><span class="section-number-3">5.4</span> Programmation</h3> +<div id="outline-container-org064b31d" class="outline-3"> +<h3 id="org064b31d"><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 @@ -2501,8 +2513,8 @@ d'outils annexes pour fonctionner. On se reportera donc au fichier </p> </div> -<div id="outline-container-org194da7d" class="outline-4"> -<h4 id="org194da7d"><span class="section-number-4">5.4.1</span> Python</h4> +<div id="outline-container-org2fab2f8" class="outline-4"> +<h4 id="org2fab2f8"><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 @@ -2540,7 +2552,6 @@ On utilise le paquet <code>jedi</code> qui gère la complétion dans Emacs pour </tr> </tbody> </table> - <p> Il existe également, une interface à <code>Jupyter</code>, mais cette dernière ne fait pas partie de cette configuration. @@ -2557,15 +2568,14 @@ sources. </div> </div> -<div id="outline-container-org57883d5" class="outline-4"> -<h4 id="org57883d5"><span class="section-number-4">5.4.2</span> C++</h4> +<div id="outline-container-orgaa1c6cc" class="outline-4"> +<h4 id="orgaa1c6cc"><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 +le paquet <code>lsp</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). +version adaptée d <code>clangd</code> (voir les consignes d'installation). </p> <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> @@ -2591,9 +2601,18 @@ d'installation). <td class="org-left"><code>C-c `</code></td> <td class="org-left">Positionne le curseur à la première erreur de compilation</td> </tr> + +<tr> +<td class="org-left"><code>M-<down></code></td> +<td class="org-left">Positionne le curseur à la prochaine erreur de compilation</td> +</tr> + +<tr> +<td class="org-left"><code>M-<up></code></td> +<td class="org-left">Positionne le curseur à l'erreur de compilation précédente</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é à @@ -2606,42 +2625,15 @@ 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-orgada33ae" class="outline-4"> -<h4 id="orgada33ae"><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… L'utilisation d'une telle base -permet donc de facilement accéder à de nombreuses informations sans -avoir à faire de recherches par ailleurs. +Si on positionne le curseur de la souris sur un élément, son type (ou +sa signature) est affiché dans une fenêtre <i>popup</i>. </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. +Il est aussi possible de naviguer simplement dans les sources en +utilisant par exemple les raccourcis suivants. </p> <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> @@ -2659,72 +2651,37 @@ objet. </thead> <tbody> <tr> -<td class="org-left"><code>M-.</code></td> -<td class="org-left">Cherche un <i>tag</i></td> +<td class="org-left"><code>M-.</code> ou <code>C-<mouse1></code></td> +<td class="org-left">Se rend à la déclaration de l'élément sous le curseur</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> +<td class="org-left"><code>M-?</code></td> +<td class="org-left">Affiche les références à l'élément sous le curseur</td> </tr> <tr> -<td class="org-left"><code>M-,</code></td> -<td class="org-left">Continue à chercher un <i>tag</i></td> +<td class="org-left"><code>C-l</code></td> +<td class="org-left">Débute l'interaction <code>hydra</code></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> +<td class="org-left"><code>C-<mouse3></code></td> +<td class="org-left">Menu contextuel</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 : +D'autres actions plus puissantes, d'aide au <i>refactoring</i> sont également +possibles. Il est possible de renommer un élément dans tout le projet +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-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-org020062b" class="outline-4"> -<h4 id="org020062b"><span class="section-number-4">5.4.4</span> YASnippet</h4> -<div class="outline-text-4" id="text-5-4-4"> +<div id="outline-container-orgc444ccd" class="outline-4"> +<h4 id="orgc444ccd"><span class="section-number-4">5.4.3</span> YASnippet</h4> +<div class="outline-text-4" id="text-5-4-3"> <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> @@ -2839,12 +2796,12 @@ Cet exemple simple illustre bien l'efficacité de l'approche. </div> </div> -<div id="outline-container-org21bf50d" class="outline-2"> -<h2 id="org21bf50d"><span class="section-number-2">6</span> Pour aller plus loin</h2> +<div id="outline-container-orgcc3782a" class="outline-2"> +<h2 id="orgcc3782a"><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-orgd666de1" class="outline-3"> -<h3 id="orgd666de1"><span class="section-number-3">6.1</span> Org-mode</h3> +<div id="outline-container-orgcfcb89f" class="outline-3"> +<h3 id="orgcfcb89f"><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 @@ -3127,8 +3084,8 @@ directement ces éléments avec le mode <code>Org</code>. </div> </div> -<div id="outline-container-org1963ec6" class="outline-3"> -<h3 id="org1963ec6"><span class="section-number-3">6.2</span> Pliage et dépliage avec <code>narrow-or-widen-dwim</code></h3> +<div id="outline-container-orgd0cb9bc" class="outline-3"> +<h3 id="orgd0cb9bc"><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 @@ -3190,8 +3147,8 @@ programmation) même qui occupera tout le <i>buffer</i>. </div> </div> -<div id="outline-container-org2c2ce3e" class="outline-3"> -<h3 id="org2c2ce3e"><span class="section-number-3">6.3</span> Autres modes installés</h3> +<div id="outline-container-org6f718b1" class="outline-3"> +<h3 id="org6f718b1"><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 @@ -3206,12 +3163,12 @@ Ils ne sont pas abordés dans ce tutoriel. </div> </div> -<div id="outline-container-org8f33136" class="outline-3"> -<h3 id="org8f33136"><span class="section-number-3">6.4</span> Personnalisation</h3> +<div id="outline-container-orgf346812" class="outline-3"> +<h3 id="orgf346812"><span class="section-number-3">6.4</span> Personnalisation</h3> <div class="outline-text-3" id="text-6-4"> </div> -<div id="outline-container-org7aaea55" class="outline-4"> -<h4 id="org7aaea55"><span class="section-number-4">6.4.1</span> custom.el</h4> +<div id="outline-container-orgd23a4f3" class="outline-4"> +<h4 id="orgd23a4f3"><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 @@ -3233,8 +3190,8 @@ importantes, il convient donc de les sauvegarder ailleurs. </div> </div> -<div id="outline-container-org7324f5e" class="outline-4"> -<h4 id="org7324f5e"><span class="section-number-4">6.4.2</span> Emacs lisp</h4> +<div id="outline-container-org5923d3c" class="outline-4"> +<h4 id="org5923d3c"><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 @@ -3276,7 +3233,7 @@ vraiment de sens. </div> </div></div> <div id="postamble" class="status"> -<p class="date">Created: 2020-06-24 mer. 00:13</p> +<p class="date">Created: 2021-02-02 mar. 07:52</p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> </div> </body> diff --git a/Tutoriel.org b/Tutoriel.org index d8d1d47de2e8ec9c07a19ac44801332307bfd2bc..7d5d071efe01b0402e5c727f0a6ec4107c574c6d 100644 --- a/Tutoriel.org +++ b/Tutoriel.org @@ -831,7 +831,6 @@ On utilise le paquet ~jedi~ qui gère la complétion dans Emacs pour | ~C-c C-c~ | Exécute le script | | ~C-c C-z~ | Passe du /buffer/ du code à la console d'exécution ou inversement | | ~S-TAB~ ou ~backtab~ | Supprime une indentation | - Il existe également, une interface à ~Jupyter~, mais cette dernière ne fait pas partie de cette configuration. @@ -844,15 +843,15 @@ sources. *** C++ Pour la complétion et la correction syntaxique à la volée, on utilise -le paquet ~irony~. Il est nécessaire pour cette fonctionnalité de +le paquet ~lsp~. 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 ~clang~ (voir les consignes -d'installation). -| Raccourci | Description | -|-----------+-----------------------------------------------------------| -| ~C-c C-c~ | Affiche l'invite de compilation dans le /minibuffer/ | -| ~C-c `~ | Positionne le curseur à la première erreur de compilation | - +version adaptée d ~clangd~ (voir les consignes d'installation). +| Raccourci | Description | +|-----------+------------------------------------------------------------| +| ~C-c C-c~ | Affiche l'invite de compilation dans le /minibuffer/ | +| ~C-c `~ | Positionne le curseur à la première erreur de compilation | +| ~M-<down>~ | Positionne le curseur à la prochaine erreur de compilation | +| ~M-<up>~ | Positionne le curseur à l'erreur de compilation précédente | Le /buffer/ 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 @@ -862,44 +861,20 @@ On notera également que si on laisse le curseur positionné sur un mot du code source, le /minibuffer/ affiche des informations concernant le type ou l'objet en question. -*** Tags -Les /tags/ (ou étiquettes en français) sont utilisés pour parcourir -facilement les sources d'un code. Cette installation est configurée -pour fonctionner avec ~GNU Global~ (voir -[[http://www.gnu.org/software/global/]]) qui indexe et exploite des bases -de /tags/. 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... L'utilisation d'une telle base -permet donc de facilement accéder à de nombreuses informations sans -avoir à faire de recherches par ailleurs. - -Comme cette configuration utilise les ~ggtags~ et repose donc sur le -logiciel tiers ~GNU Global~, il convient de l'installer. Pour cela, on -se référera au fichier [[file:Installation.org][Installation.org]]. - -Avant de rappeler quelques raccourcis usuels de ce mode, rappelons -qu'à la première utilisation des ~ggtags~ pour un code, la base sera -créée. - -Enfin précisons que les /tags/ 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. -| Raccourci | Description | -|-----------+---------------------------------------------------------------| -| ~M-.~ | Cherche un /tag/ | -| ~C-M-.~ | Cherche les /tags/ qui correspondent à une expression régulière | -| ~M-,~ | Continue à chercher un /tag/ | -| ~C-c M-%~ | Remplace un /tag/ par une nouvelle chaîne dans tout le code | -| ~C-c M-g~ | Lance un ~grep~ dans la base des /tags/ | -| ~C-c M-f~ | Ouvre un fichier référencé dans la base des /tags/ | -Dans ce contexte, on rappelle que pour revenir dans le /buffer/ il est -conseillé d'utiliser les raccourcis de navigation classiques : -| Raccourci | Description | -|-----------+------------------------------| -| ~C-x left~ | Retourne au /buffer/ précédent | -| ~C-x right~ | Retourne au /buffer/ suivant | +Si on positionne le curseur de la souris sur un élément, son type (ou +sa signature) est affiché dans une fenêtre /popup/. + +Il est aussi possible de naviguer simplement dans les sources en +utilisant par exemple les raccourcis suivants. +| Raccourci | Description | +|-------------------+-------------------------------------------------------| +| ~M-.~ ou ~C-<mouse1>~ | Se rend à la déclaration de l'élément sous le curseur | +| ~M-?~ | Affiche les références à l'élément sous le curseur | +| ~C-l~ | Débute l'interaction ~hydra~ | +| ~C-<mouse3>~ | Menu contextuel | +D'autres actions plus puissantes, d'aide au /refactoring/ sont également +possibles. Il est possible de renommer un élément dans tout le projet +par exemple. *** YASnippet Il n'est pas envisageable d'écrire un tutoriel Emacs sans évoquer les diff --git a/Tutoriel.pdf b/Tutoriel.pdf index 556bb16f80171017dbc1d3e1735eb3eb234d3280..e47f7722756e7e4e85d7f340b9fdef678b4bb351 100644 Binary files a/Tutoriel.pdf and b/Tutoriel.pdf differ diff --git a/init.el b/init.el index a2d3bf0f9d497364e925b8044169eececd10b28b..7c35376336bdb728d97a7de684224fe5daca640e 100644 --- a/init.el +++ b/init.el @@ -66,6 +66,28 @@ SortIncludes: false --- ")))) +;;; Crée un fichier ~/.gitignore (s'il n'y en a pas) pour éviter des +;;; pollutions des dépôts git liés à la création des fichiers +;;; temporaires générés par clangd +(let ((home-dot-gitignore (or (magit-get "core.excludesFile") + '"~/.gitignore"))) +(unless (string-equal (magit-get "core.excludesFile") home-dot-gitignore) + (magit-git-success "config" "--global" "core.excludesFile" home-dot-gitignore) + ) + (if (file-exists-p home-dot-gitignore) + (with-temp-buffer + (insert-file-contents home-dot-gitignore) + (buffer-string) + (unless (search-forward-regexp "^\\.cache$" nil t nil) + (write-region ".cache +" nil home-dot-gitignore 'append t) + ) + ) + (with-temp-file home-dot-gitignore + (insert ".cache +")) + )) + ;;; Local Variables: ;;; byte-compile-warnings: (not free-vars) ;;; End: (provide 'init)