#+TITLE: Ma cheatsheet d’Emacs

En perpétuelle construction.
Source : [[./data/media/cheat.org.html][fichier.org]].

* C-u


| C-u                                | « argument universel ».                                                                    |
|------------------------------------+--------------------------------------------------------------------------------------------|
|                                    | Permet de modifier le comportement d’une fonction                                          |
|                                    | Permet d’exécuter la commande plusieurs fois                                               |
|                                    | Permet de passer un paramètre numérique à une fonction                                     |
|------------------------------------+--------------------------------------------------------------------------------------------|
| C-u chiffres commande              | fait la commande chiffres fois                                                             |
| C-u 5 -                            | insère : -----                                                                             |
| C-u 5 BackSpace                    | efface les 5 dernières lettres                                                             |
| C-u 2 M-x forward-word             | avance de 2 mots                                                                           |
| C-u commande                       | répète la commande 4 fois (ou comportement spécial de la commande)                         |
| C-u C-u commande                   | répète la commande 16 fois (ou comportement spécial de la commande)                        |
| C-u C-u *                          | insère : ****************                                                                  |
|------------------------------------+--------------------------------------------------------------------------------------------|
| M-chiffres commande                | fait la commande chiffres fois, comme C-u chiffres commande                                |
| M-5 -                              | insère : -----                                                                             |
| M-1 M-6 *                          | insère : ****************                                                                  |
|------------------------------------+--------------------------------------------------------------------------------------------|
| C-u commande                       | appelle la commande avec un comportement spécial (ou répète la commande 4 fois)            |
| M-x goto-line 4 (C-x l 4)          | va à la ligne 4                                                                            |
| C-u 4 goto-line (C-u 4 C-x l)      | va à la ligne 4                                                                            |
| M-4 goto-line (M-4 C-x l)          | va à la ligne 4                                                                            |
| C-u M-x goto-line 4  (C-u C-x l 4) | va à la ligne 4 dans un autre buffer                                                       |
|------------------------------------+--------------------------------------------------------------------------------------------|
|                                    | si kill-ring contient les mots "cinq", "quatre", "trois", "zéro", "pastèque"               |
| M-x yank (C-y)                     | colle le texte le plus récemment coupé, en mettant la ~mark~ au début, le ~point~ à la fin |
|                                    | [marque]pastèque[curseur]                                                                  |
| C-u 4 M-x yank (C-u 4 C-y/M-4 C-y) | colle le 4ème text du kill ring, en mettant la ~mark~ au début, le ~point~ à la fin        |
|                                    | [marque]quatre[curseur]                                                                    |
| C-u M-x yank (C-u C-y)             | colle le texte le plus récemment coupé, en mettant la ~mark~ à la fin, le ~point~ au début |
|                                    | [curseur]pastèque[marque]                                                                  |

  

* Aide
| raccourci  | commande               | ce que ça fait                                                  |
|------------+------------------------+-----------------------------------------------------------------|
| C-h a      | apropos                | montre ce que fait la commande dans un buffer                   |
| C-u C-h a  |                        | montre aussi les fonctions non interactives                     |
| C-h k      | describe-key           | affiche ce que fait un raccourci dans un buffer                 |
| C-h c      | describe-key-briefly   | affiche la fonction appelée par un raccourci dans le minibuffer |
| C-h f      | describe-function      | affiche ce que fait la fonction dans un buffer                  |
| C-h t      | help-with-tutorial     | affiche le tutoriel                                             |
| C-u C-h t  |                        | demande la langue du tutoriel avant de l’affichier              |
| C-h w      | where-is               | affiche le raccourci correspondant à la commande                |
| C-h e      | view-eco-area-messages | montre la log des messages récents                              |
| C-h i      | info                   | affiche Info                                                    |
| C-h l      | view-lossage           | affiche les 300 dernières frappes de touche                     |
| C-h m      | describe-mode          | affiche la doc du mode majeur et des modes mineurs du buffer    |

* Se déplacer
| raccourci          | commande                       | ce que ça fait                                                                                         |
|--------------------+--------------------------------+--------------------------------------------------------------------------------------------------------|
| C-a                | move-beginning-of-line         | va en début de ligne                                                                                   |
|                    |                                | avec ~ARG~, se déplace de ~ARG~-1 ligne(s) d’abord                                                     |
| C-u C-a            |                                | se déplace de 3 lignes vers le bas, puis va en début de ligne                                          |
| M-0 C-a            |                                | va en début de ligne sur la ligne du dessus                                                            |
| M-- M-1 C-a        |                                | se déplace de 2 lignes vers le haut, puis va en début de ligne                                         |
| M-a                | backward-sentence              | va en début de phrase                                                                                  |
|                    |                                | avec ~ARG~, le fait ~ARG~ fois                                                                         |
| C-u M-a            |                                | remonte de 4 phrases                                                                                   |
| C-e                | move-end-of-line               | aller en fin de ligne                                                                                  |
|                    |                                | avec ~ARG~, se déplace de ~ARG~-1 ligne(s) d’abord                                                     |
| C-u C-a            |                                | se déplace de 3 lignes vers le bas, puis va en fin de ligne                                            |
| M-e                | forward-sentence               | aller en fin de phrase                                                                                 |
|                    |                                | avec ~ARG~, le fait ~ARG~ fois                                                                         |
|--------------------+--------------------------------+--------------------------------------------------------------------------------------------------------|
| C-f                | forward-char                   | lettre suivante                                                                                        |
|                    |                                | avec ~ARG~, avance de ~ARG~ lettres (ou recule si ~ARG~ est négatif)                                   |
| C-u C-f            |                                | avance de 4 lettres                                                                                    |
| M-f                | forward-word                   | mot suivant                                                                                            |
|                    |                                | avec ~ARG~, avance de ~ARG~ mots (ou recule si ~ARG~ est négatif)                                      |
| C-b                | backward-char                  | lettre précédente (backward)                                                                           |
| M-b                | backward-char                  | mot précédent                                                                                          |
|--------------------+--------------------------------+--------------------------------------------------------------------------------------------------------|
| C-p                | previous-line                  | ligne précédente                                                                                       |
|                    |                                | avec ~ARG~, le fait ~ARG~ fois                                                                         |
| C-n                | next-line                      | ligne suivante                                                                                         |
|                    |                                | avec ~ARG~, le fait ~ARG~ fois                                                                         |
| C-x C-n            | set-goal-column                | définit la colonne pour C-n et C-p                                                                     |
|                    |                                | si ~goal-column~ est définie, C-n et C-p se déplace sur la ligne suivante/précédente à cette colonne   |
|--------------------+--------------------------------+--------------------------------------------------------------------------------------------------------|
| C-v                | scroll-up-command              | avance le texte d’un écran (le curseur reste en place si possible)                                     |
|                    |                                | avec ~ARG~, descend de ~ARG~ lignes (remonte si négatif)                                               |
| C-u C-v            |                                | déplace de 4 lignes vers le haut                                                                       |
| M-v                | scroll-down-command            | recule le texte d’un écran                                                                             |
|                    |                                | avec ~ARG~, remonte de ~ARG~ lignes                                                                    |
| C-u M-v            |                                | déplace de 4 lignes vers le bas                                                                        |
| C-M-v              | scroll-other-window            | avance le texte de la prochaine fenêtre d’un écran                                                     |
|                    |                                | avec ~ARG~, descend de ~ARG~ lignes (remonte si négatif)                                               |
| C-u C-M-v          |                                | déplace de 4 lignes vers le haut la prochaine fenêtre                                                  |
| M-- C-M-v          |                                | recule le texte de la prochaine fenêtre d’un écran                                                     |
|--------------------+--------------------------------+--------------------------------------------------------------------------------------------------------|
| C-l                | recenter-top-bottom            | met la ligne courante avec le point au centre (puis en haut/en bas, après appels successifs)           |
|                    |                                | avec ~ARG~, met la ligne courante sur la ligne ~ARG~ de la fenêtre (en partant du bas si négatif)      |
| M-4 C-l            |                                | met la ligne courante sur la 4e ligne de la fenêtre                                                    |
| C-u C-l            |                                | met la ligne au centre                                                                                 |
|--------------------+--------------------------------+--------------------------------------------------------------------------------------------------------|
| M-g g chiffres     | goto-line                      | aller à la ligne chiffres du buffer                                                                    |
| M-g M-g chiffres   | goto-line                      |                                                                                                        |
| C-x l chiffres     | goto-line                      |                                                                                                        |
|                    |                                | avec ~ARG~, va à la ligne ~ARG~ du buffer                                                              |
| M-4 M-g M-g        |                                | va à la 4e ligne du buffer                                                                             |
| C-u M-g g chiffres |                                | va à la ligne ~chiffres~ du dernier buffer sélectionné                                                 |
|--------------------+--------------------------------+--------------------------------------------------------------------------------------------------------|
| M-r                | move-to-window-line-top-bottom | met le ~point~ sur la ligne au milieu de la fenêtre (en haut/en bas, si appels successifs)             |
|                    |                                | avec ~ARG~, met le ~point~ à la ligne ~ARG~ de la fenêtre (commence à 0)                               |
| C-u M-r            |                                | met le point sur la 5e ligne de la fenêtre                                                             |
| M-- M-1            |                                | met le point sur la dernière ligne de la fenêtre                                                       |
|--------------------+--------------------------------+--------------------------------------------------------------------------------------------------------|
| M-<                | beginning-of-buffer            | va au début du buffer                                                                                  |
|                    |                                | avec ~ARG~, va au ~ARG~ dixièmes du buffer                                                             |
| M-2 M-<            |                                | va au 2/10 du buffer                                                                                   |
| C-u 2 M-<          |                                | va au 2/20 du buffer, mais ne laisse pas de ~mark~ à la position précédente (en mode ~Transient Mark~) |
| M->                | end-of-buffer                  | va à la fin du buffer                                                                                  |
|--------------------+--------------------------------+--------------------------------------------------------------------------------------------------------|
| M-m                | back-to-indentation            | va au premier caractère non blanc de la ligne                                                          |
|                    | forward-to-indentation         | avec ~ARG~, avance de ~ARG~ lignes et va au premier caractère non blanc                                |
|                    | backward-to-indentation        | avec ~ARG~, recule de ~ARG~ lignes et va au premier caractère non blanc                                |

* Éditer
| raccourci          | commande                     | ce que ça fait                                                                              |
|--------------------+------------------------------+---------------------------------------------------------------------------------------------|
| M-i                | tab-to-tab-stop              | insère des espaces/tabulations jusqu’au prochain tab-stop (M-x edit-tab-stops)              |
| C-i / TAB          | indent-for-tab-command       | indente la ligne ou la région                                                               |
|                    |                              | ou insère une tabulation                                                                    |
|                    |                              | ou fait une complétion                                                                      |
|                    |                              | voir la variable ~tab-always-indent~                                                        |
|                    |                              | dépend du mode                                                                              |
| C-x TAB            | indent-rigidly               | indente toutes les lignes de la région avec gauche/droite                                   |
|                    |                              | avec ~ARG~, indente de ~ARG~ colonnes                                                       |
|--------------------+------------------------------+---------------------------------------------------------------------------------------------|
| M-;                | comment-dwim                 | appelle la commande de commentaire (Do What I Mean)                                         |
|                    |                              | si une région est active et ~transient-mark-mode~ est on, commente la région                |
|                    |                              | sauf si la région n’est composée que de commentaire, la décommente                          |
|                    |                              | sinon, si la ligne est vide, insère un commentaire (et indente)                             |
|                    |                              | sinon, si un argument est présent, appelle ~comment-kill~                                   |
|                    |                              | sinon appelle ~comment-indent~                                                              |
|--------------------+------------------------------+---------------------------------------------------------------------------------------------|
| C-j                | electric-indent-just-newline | insère une nouvelle ligne, sans indentation                                                 |
| C-o                | open-line                    | insère une ligne en laissant le point à sa place                                            |
|                    |                              | avec ~ARG~, insère ~ARG~ lignes                                                             |
| C-u C-o            |                              | insère 4 lignes                                                                             |
| C-M-o              | split-line                   | sépare la ligne en déplaçant la fin verticalement                                           |
|                    |                              | avec ~ARG~, n’insère pas de ~fill-prefix~                                                   |
| C-x C-o            | delete-blank-lines           | supprime les lignes vides                                                                   |
| M-^                | delete-indentation           | joint cette ligne et la précédente                                                          |
|                    |                              | avec ~ARG~, joint à la suivante                                                             |
| M-\                | delete-horizontal-space      | supprime toutes les espaces/tabulations autour du ~æpoint~                                  |
|                    |                              | avec ~ARG~, supprime seulement celles avant le ~point~                                      |
| M-SPC              | just-one-space               | supprime les espaces/tabulations autour du point et ne laisse qu’une (ou ~ARG~) espace(s)   |
|                    |                              | si ~ARG~ est négatif supprime les sauts de ligne également, laissant ~-ARrG~ espace(s)      |
| M-SPC              | ~toto  _ utut~               | ~toto utut~, le curseur sur le premier ~u~                                                  |
| C-u M-SPC          | ~toto utut~                  | ~toto    utut~, le curseur sur le premier ~u~                                               |
| M-- M-2 M-SPC      | ~toto  _                     | ~toto  utut~, le curseur sur le premier ~u~                                                 |
|                    | utut~                        |                                                                                             |
|--------------------+------------------------------+---------------------------------------------------------------------------------------------|
| M-q                | fill-paragraph               | reformate le paragraphe sur ou après le point, ou les paragraphes de la région              |
| C-x f chiffres     | set-fill-column              | définit ~fill-column~ à chiffres                                                            |
| M-4 C-x f chiffres |                              | définit ~fill-column~ à 4                                                                   |
| C-u C-x f chiffres |                              | définit ~fill-column~ à la colonne courante                                                 |
| M-o M-s            | center-line                  | centre la ligne                                                                             |
|                    |                              | avec ~ARG~, centre ~ARG~ lignes                                                             |
| M-o M-S            | center-paragraph             | centre le paragraphe                                                                        |
|--------------------+------------------------------+---------------------------------------------------------------------------------------------|
| C-t                | transpose-chars              | échange 2 lettres                                                                           |
|                    |                              | avec ~ARG~, avance le caractère qui précéde le ~point~ de ~ARG~ caractère(s)                |
| M-t                | transpose-words              | échange 2 mots                                                                              |
|                    |                              | avec ~ARG~, avance le caractère qui précéde le ~point~ de ~ARG~ mot(s)                      |
| M-0 M-t            |                              | échange le mot vers le ~point~ avec le mot vers la ~mark~                                   |
| C-x C-t            | transpose-lines              | échange la précédente avec la ligne courante                                                |
|                    |                              | avec ~ARG~, avance la ligne précédente de ~ARG~ lignes                                      |
| M-0 C-x C-t        |                              | échange la ligne courante avec celle de la ~mark~                                           |
|--------------------+------------------------------+---------------------------------------------------------------------------------------------|
| M-u                | upcase-word                  | met en lettres capitales le mot à partir du ~point~                                         |
|                    |                              | avec ~ARG~, met en capitales les ~ARG~ mots à partir du ~point~                             |
|                    |                              | si ~ARG~ est négatif, met en capitales les ~ARG~ mots précédent ~point~ sans bouger ~point~ |
| M-l                | downcase-word                | met en lettres minuscules le mot à partir du ~point~                                        |
|                    |                              | même remarque que pour M-u                                                                  |
| M-c                | capitalize-word              | met en lettre capitale la lettre sous ~point~ et va à la fin du mot                         |
|                    |                              | même remarque que pour M-u                                                                  |
| C-x C-u            | upcase-region                | met en lettres capitales la région                                                          |
| C-x C-l            | downcase-region              | met en lettres capitales la région                                                          |

* Mise en forme
Si ~font-lock-mode~ n’est pas à ~t~
| raccourci | commande                 | ce que ça fait                                |
|-----------+--------------------------+-----------------------------------------------|
| M-o d     | facemenu-set-default     | met la ~face~ par défaut                      |
| M-o b     | facemenu-set-bold        | en gras                                       |
| M-o i     | facemenu-set-italic      | en italique                                   |
| M-o l     | facemenu-set-bold-italic | en gras et italique                           |
| M-o o     | facemenu-set-face        | applique la ~face~ (TAB pour avoir une liste) |
| M-o u     | facemenu-set-underline   | souligne                                      |

* Couper/Copier/Coller
| raccourci | commande             | ce que ça fait                                                                          |
|-----------+----------------------+-----------------------------------------------------------------------------------------|
| C-d       | delete-char          | supprime la prochaine lettre                                                            |
|           |                      | avec ~ARG~, ~kill~ les ~ARG~ prochaines lettres et sauve dans ~kill-ring~               |
| M-d       | kill-word            | ~kill~ le prochain mot                                                                  |
|           |                      | avec ~ARG~, ~kill~ les ~ARG~ prochains mots                                             |
| BackSpc   | delete-backward-char | supprime la lettre précédente                                                           |
|           |                      | avec ~ARG~, ~kill~ les ~ARG~ lettres précédentes                                        |
| M-BackSpc | backward-kill-word   | ~kill~ le mot précédent                                                                 |
|           |                      | avec ~ARG~, ~kill~ les ~ARG~ mots précédents                                            |
| C-k       | kill-line            | ~kill~ le reste de la ligne                                                             |
|           |                      | avec ~ARG~, ~kill~ les ~ARG-1~ prochaines lignes également                              |
| M-0 C-k   |                      | ~kill~ du ~point~ au début de la ligne                                                  |
| C-w       | kill-region          | ~kill~ la région                                                                        |
| M-w       | kill-ring-save       | copie la région                                                                         |
| C-M-w     | append-next-kill     | si la commande suivante est un kill, ajoute au précédent ~kill~                         |
| C-y       | yank                 | colle le texte le plus récemment coupé                                                  |
|           |                      | met la ~mark~ au début, le ~point~ à la fin (insère le ~kill~ avant ~point~)            |
|           |                      | avec ~ARG~, réinsert le ~ARG~-ième ~kill~ le plus récent                                |
| M-4 C-y   |                      | colle le 4ème ~kill~ le plus récent                                                     |
| C-u C-y   |                      | met la ~mark~ à la fin, le ~point~ au début (insère le ~kill~ après ~point~)            |
| M-y       | yank-pop             | après un ~yank~ (ou un ~yank-pop~) remplace le ~yank~ par le ~kill~ précédent           |
|           |                      | avec ~ARG~, par le ~ARG~-ième ~kill~ le plus récent                                     |
| M-z x     | zap-to-char          | ~kill~ jusqu’au caractère x inclus                                                      |
|           |                      | avec ~ARG~, jusqu’au ~ARG~-ième caractère x (caractère précédent le ~point~ si négatif) |
* Fenêtres/buffers
| raccourci  | commande                           | ce que ça fait                                                                        |
|------------+------------------------------------+---------------------------------------------------------------------------------------|
| C-x 1      | delete-other-windows               | la ~window~ remplit la frame (le buffer courant devient le seul buffer de la fenêtre) |
| C-x 2      | split-window-below                 | splitte la ~window~ en 2, la nouvelle est dessous                                     |
|            |                                    | avec ~ARG~, la ~window~ du dessus fait ~ARG~ lignes si ~ARG~ positif                  |
|            |                                    | avec ~ARG~, la ~window~ du dessous fait ~ARG~ lignes si ~ARG~ négatif                 |
| C-x 3      | split-window-right                 | splitte la ~window~ en 2, la nouvelle est à droite                                    |
|            |                                    | avec ~ARG~, la ~window~ de gauche fait ~ARG~ colonnes                                 |
|            |                                    | avec ~ARG~, la ~window~ de droite fait ~ARG~ colonnes                                 |
| C-x 0      | delete-window                      | supprime la fenêtre                                                                   |
|------------+------------------------------------+---------------------------------------------------------------------------------------|
| C-x ^      | enlarge-window                     | réduit la ~window~ d’une ligne                                                        |
|            |                                    | avec ~ARG~, réduit de ~ARG~ lines                                                     |
| C-x {      | shrink-window-horizontally         | réduit la ~window~ d’une colonne                                                      |
|            |                                    | avec ~ARG~, réduit de ~ARG~ colonnes                                                  |
| C-x }      | enlarge-window-horizontally        | agrandit la ~window~ d’une colonne                                                    |
|            |                                    | avec ~ARG~, agrandit de ~ARG~ colonnes                                                |
| C-x +      | balance-windows                    | équilibre les tailles des ~windows~                                                   |
| C-x o      | other-window                       | choisit la prochaine ~window~                                                         |
|            |                                    | avec ~ARG~, choisit la ~ARG~-ième prochaine ~window~                                  |
|------------+------------------------------------+---------------------------------------------------------------------------------------|
| C-x k      | kill-buffer                        | ~kill~ le buffer                                                                      |
| C-x droite | next-buffer                        | va au buffer suivant                                                                  |
| C-x gauche | previous-buffer                    | va au buffer précédent                                                                |
| C-x b nom  | switch-to-buffer                   | affiche le buffer ~nom~ dans la ~window~ (le crée s’il n’existe pas)                  |
| C-x C-b    | list-buffers                       | affiche une liste des buffers existants                                               |
|            |                                    | avec ~ARG~, affiche uniquement ceux qui visitent un fichier                           |
| C-x d      | dired                              | ouvre un buffer du répertoire pour éditer/supprimer/… les fichiers                    |
| C-x C-j    | dired-jump                         | ouvre ~dired~ en se plaçant sur la line correspondant au fichier                      |
|            |                                    | avec ~ARG~, demande le nom du fichier                                                 |
|------------+------------------------------------+---------------------------------------------------------------------------------------|
| C-x 4 0    | kill-buffer-and-window             | ~kill~ le buffer et ferme la ~window~ courante                                        |
| C-x 4 b    | switch-to-buffer-other-window      | affiche le buffer dans une autre ~window~, se positionne dessus                       |
| C-x 4 C-o  | display-buffer                     | affiche le buffer dans une autre ~window~, ne se positionne pas dessus                |
| C-x 4 d    | dired-other-window                 | ~dired~ mais dans une autre ~window~                                                  |
| C-x 4 C-j  | dired-jump-other-window            | ~dired-jump~ mais dans une autre ~window~                                             |
|------------+------------------------------------+---------------------------------------------------------------------------------------|
| C-x n n    | narrow-to-region                   | restreint l’édition du buffer à la région courante                                    |
| C-x n w    | widen                              | supprime la restriction du buffer courant                                             |
|------------+------------------------------------+---------------------------------------------------------------------------------------|
| C-x 4 c    | clone-indirect-buffer-other-window | crée un clone du buffer. Le clone est identique au premier (les modifications de l’un |
|            |                                    | apparaissent sur l’autre), mais les ~point~, ~mark~, mode, ~narrow~, noms, variables  |
|            |                                    | locales sont propres à chacun.                                                        |
|            |                                    | avec ~ARG~, demande un nom à donner au clone                                          |

* Fichiers
| raccourci           | commande                         | ce que ça fait                                                                                                                 |
|---------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------|
| C-x C-f             | find-file                        | édite le fichier, se met dans un buffer le visitant, en le créant si nécessaire                                                |
| C-x C-r             | find-file-read-only              | ~find-file~, mais le fichier est en lecture seule                                                                              |
| C-x 4 f             | find-file-other-window           | ouvre le fichier dans une autre fenêtre                                                                                        |
| C-x 4 C-f           | find-file-other-window           |                                                                                                                                |
| C-x 4 r             | find-file-read-only-other-window | ~find-file-other-window~, mais le fichier est en lecture seule                                                                 |
| C-x C-q             | read-only-mode                   | change le fait que le buffer soit en lecture seule                                                                             |
|                     |                                  | avec ~ARG~, le met en lecture seule si positif, en écriture si négatif                                                         |
|---------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------|
| C-x C-s             | save-buffer                      | sauve le buffer courant dans le fichier visité                                                                                 |
|                     |                                  | La version précédente devient un backup si c’est la première sauvegarde                                                        |
| C-u C-x C-s         |                                  | cette version devient un backup lors de la prochaine sauvegarde                                                                |
| C-u C-u C-x C-s     |                                  | la version précédente devient un backup inconditionnelement                                                                    |
| C-u C-u C-u C-x C-s |                                  | cette version devient un backup lors de la prochaine sauvegarde et la version précédente devien un backup, inconditionnelement |
| M-0 C-x C-s         |                                  | la version précédente ne devient pas un backup                                                                                 |
|---------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------|
| C-x C-w             | write-file                       | écrit le buffer dans le fichier en argument                                                                                    |
|                     |                                  | avec ~ARG~, ne demande pas confirmation pour écraser                                                                           |
|---------------------+----------------------------------+--------------------------------------------------------------------------------------------------------------------------------|
| C-x i fichier       | insert-file                      | insère le contenu de ~fichier~ dans le buffer après le ~point~, met la ~mark~ après le texte inséré                            |

* Marques
| raccourci | commande                | ce que ça fait                                                                                              |
|-----------+-------------------------+-------------------------------------------------------------------------------------------------------------|
| C-SPC     | set-mark-command        | fait une ~mark~ (donc le début d’une région)                                                                |
| C-@       | set-mark-command        |                                                                                                             |
|           |                         | avec ~ARG~ fait une ~mark~ et va à la précédente                                                            |
| C-x C-SPC | pop-global-mark         | va à la précédente ~mark~ globale                                                                           |
| C-x C-@   | pop-global-mark         |                                                                                                             |
| M-@       | mark-word               | place une ~mark~ à la fin du mot                                                                            |
|           |                         | avec ~ARG~, ~mark~ à la fin du ~ARG~-ième prochain mot                                                      |
|           |                         | si la commande est répétée ou en ~transient~mark-mode~, place la ~mark~ sur le(s) mot(s) suivant(s)         |
| C-x C-x   | exchange-point-and-mark | échanger le ~point~ et la ~mark~                                                                            |
|           |                         | avec ~ARG~, change le ~transient-mark-mode~                                                                 |
| M-h       | mark-paragraph          | sélectionne le paragraphe, le ~point~ au début, la ~mark~ à la fin                                          |
|           |                         | avec ~ARG~, met la ~mark~ à la fin du ~ARG~-ième paragraphe                                                 |
|           |                         | si ~ARG~ est négatif, le ~point~ va à la fin du paragraphe, et sélectionne les ~ARG~ paragraphes précédents |
| C-x h     | mark-whole-buffer       | sélectionne tout le buffer                                                                                  |
|           |                         | si en ~narrow~, ne sélectionne que la partie « visible »                                                    |

* Macro
| raccourci        | commande                             | ce que ça fait                                                       |
|------------------+--------------------------------------+----------------------------------------------------------------------|
| C-x (            | kmacro-start-macro                   | démarre l’enregistrement d’une macro                                 |
|                  |                                      | ajoute à la dernière macro                                           |
| C-x )            | kmacro-end-macro                     | arrête l’enregistrement de la macro                                  |
|                  |                                      | répète la macro 4 fois                                               |
| C-x e            | kmacro-end-and-call-macro            | exécute la dernière macro, l’arrête si nécessaire                    |
|                  |                                      | avec ~ARG~, répète ~ARG~ fois                                        |
| M-0 C-x e        |                                      | répète jusqu’à ce qu’une erreur se produise                          |
|------------------+--------------------------------------+----------------------------------------------------------------------|
| C-x C-k C-a      | kmacro-add-counter                   | demande la valeur à ajouter au compteur                              |
|                  |                                      | avec ~ARG~, ajoute ~ARG~ au compteur                                 |
| C-u C-x C-k C-a  |                                      | remet l’ancienne valeur                                              |
| C-x C-k C-c      | kmacro-set-counter                   | demande quelle valeur mettre au compteur                             |
|                  |                                      | avec ~ARG~, met ~ARG~ au compteur                                    |
| C-u C-x C-k C-c  |                                      | remet le compteur à la valeur avant l’itération de la macro          |
| C-x C-k C-f      | kmacro-set-format                    | met le compteur au format donné (par exemple ~%02g~)                 |
| C-x C-k TAB      | kmacro-insert-counter                | insère le compteur, ajoute 1                                         |
|                  |                                      | avec ~ARG~, insère et ajoute ~ARG~                                   |
| C-u C-x C-k TAB  |                                      | insère le précédent compteur et le ne modifie pas                    |
|------------------+--------------------------------------+----------------------------------------------------------------------|
| C-x C-k C-e      | kmacro-edit-macro-repeat             | édite la dernière macro                                              |
| C-x C-k C-l      | kmacro-call-ring-2nd-repeat          | exécute la pénultième macro                                          |
| C-x C-k C-n      | kmacro-cycle-ring-next               | prend la prochaine macro dans le ring (et l’affiche dans la minibar) |
|                  |                                      | avec ~ARG~, ~ARG~-ième prochaine macro dans le ring                  |
| C-x C-k C-p      | kmacro-cycle-ring-previous           | prend la précédente macro dans le ring                               |
|                  |                                      | avec ~ARG~, ~ARG~-ième précédente macro                              |
| C-x C-k C-t      | kmacro-swap-ring                     | échange les 2 premières macro du ring                                |
| C-x C-k C-v      | kmacro-view-macro-repeat             | affiche la dernière macro                                            |
|                  |                                      | avec ~ARG~, la ~ARG~-ième dernière macro                             |
|                  |                                      | répéter pour afficher les précédentes                                |
|                  |                                      | C-k pour exécuter la commande sans changer l’ordre dans le ring      |
| C-x C-k SPC      | kmacro-step-edit-macro               | exécute la dernière macro en éditant pas à pas                       |
| C-x C-k b        | kmacro-bind-to-key                   | demande à quelle touche lier la dernière macro                       |
| C-x C-k [0-9A-Z] |                                      | exécute la commande liée à la touche                                 |
| C-x C-k e        | edit-kbd-macro                       | édite une macro                                                      |
|                  |                                      | avec ~ARG~, formatte la macro de façon plus concisve                 |
| C-x C-k l        | kmacro-edit-lossage                  | édite les 300 dernières frappes comme une macro                      |
| C-x C-k n nom    | kmacro-name-last-macro               | nomme la dernière macro, on peut alors exécuter ~M-x nom~            |
| C-x C-k r        | apply-macro-to-region-lines          | exécute la dernière macro pour chaque ligne de la région             |
| C-x C-k x        | kmacro-to-register                   | store la dernière macro                                              |
| F3               | kmacro-start-macro-or-insert-counter | met le compteur à 0, enregistre la macro                             |
|                  |                                      | avec ~ARG~, met le compteur à ~ARG~, enregistre la macro             |
| C-u F3           |                                      | ajoute à la dernière macro, le compteur garde sa valeur              |
|                  |                                      | en enregistrement, insère le compteur et ajoute 1                    |
|                  |                                      | avec ~ARG~, insère et ajoute ~ARG~                                   |
| C-u F3           |                                      | insère le précédent compteur, ne l’incrémente pas                    |
| F4               | kmacro-end-or-call-macro             | termine l’enregistrement de la macro                                 |
|                  |                                      | si pas en enregistrement, exécute la macro                           |
|                  |                                      | avec ~ARG~, exécute ~ARG~ fois                                       |
| C-u F4           |                                      | exécute la penultième macro                                          |

* Recherches
| raccourci | commande                        | ce que ça fait                                                                   |
|-----------+---------------------------------+----------------------------------------------------------------------------------|
| C-s       | isearch-forward                 | fait une recherche incrémentale après le ~point~                                 |
|           |                                 | avec ~ARG~, cherche avec regexp                                                  |
| C-r       | isearch-backward                | fait une recherche incrémentale avant le ~point~                                 |
|           |                                 | avec ~ARG~, avec regexp                                                          |
| M-%       | query-replace                   | chercher/remplacer (dans la région si en mode transient mark avec ~mark~ active) |
|           |                                 | avec ~ARG~, remplace seulement si pas au milieu d’un mot (query replace word)    |
| C-M-s     | isearch-forward-regexp          | chercher avec regexp                                                             |
|           |                                 | avec ~ARG~, cherche sans regexp                                                  |
| C-M-r     | isearch-backward-regexp         | chercher avec regexp en arrière                                                  |
|           |                                 | avec ~ARG~, sans regexp                                                          |
| C-M-%     | query-replace-regexp            | chercher/remplacer avec regexp                                                   |
|           |                                 | avec ~ARG~, remplace les mots seulement                                          |
|-----------+---------------------------------+----------------------------------------------------------------------------------|
| M-s w     | isearch-forward-word            | cherche la séquence de mots (peuvent être séparés par de la ponctuation…)        |
|           |                                 | avec ~ARG~, recherche normale                                                                |
| M-s .     | isearch-forward-symbol-at-point | cherche le symbole (le mot) sur lequel le ~point~ se trouve                      |
| M-s o     | occur                           | affiche les lignes contenant la regexp dans un buffer                            |
|           |                                 | avec ~ARG~, prend ~ARG~ lignes de contexte                                       |
| M-s h .   | highlight-symbol-at-point       | highlight du symbole (le mot) sur lequel le ~point~ se trouve                    |
| M-s h l   | highlight-lines-matching-regexp | highlight des lignes qui matchent la regexp                                      |
| M-s h r   | highlight-regexp                | highlight de la regexp                                                           |
| M-s h u   | unhighlight-regexp              | enlève l’highlight sur la regexp                                                 |
|           |                                 | avec ~ARG~, enlève tous les highlights                                                       |


Pendant une recherche
| raccourci | ce que ça fait                                                                          |
|-----------+-----------------------------------------------------------------------------------------|
| BackSpc   | supprime le dernier caractère de la recherche                                           |
| Entrée    | sort de la recherche, laisse le ~point~ à l’emplacement trouvé                          |
| M-p       | cherche l’item précédent du search-ring                                                 |
| M-n       | cherche le prochain item du search-ring                                                 |
| C-M-i     | complète la chaîne de recherche à partir du search-ring                                 |
| C-j       | cherche la fin de ligne                                                                 |
| C-s       | cherche la prochaine occurence                                                          |
| C-r       | cherche l’occurence précédente                                                          |
| C-w       | ajoute la fin du mot sur lequel se trouve le ~point~ à la fin de la chaîne de recherche |
| M-s C-e   | ajoute la fin de la ligne sur laquelle se trouve le ~point~ à la chaîne de recherche    |
| C-y       | ajoute le dernier kill                                                                  |
| C-g       | si la recherche échoue, revient à la dernière recherche en succès                       |
|           | si la recherche est en succès, arrête la recherche, revient au ~point~ de départ        |
| M-s c     | recherche en étant sensible ou non à la casse                                           |
| M-s r     | recherche en expression régulière ou non                                                |
| M-s w     | recherche à l’intérieur des mots ou non                                                 |
| M-s e     | édite la chaîne de recherche                                                            |
| M-%       | lance query-replace                                                                     |
| C-M-%     | lance query-replace-regexp                                                              |
| M-s o     | lance occur avec la dernière recherche                                                  |
| M-s h r   | lance highlight-regexp avec la dernière recherche                                       |

Pendant un remplacement 
| SPC           | remplace                                                          |
| y             | remplace                                                          |
| n             | ne remplace pas, va au prochain                                   |
| Suppr/Backspc | ne remplace pas, va au prochain                                   |
| Entrée        | quitte                                                            |
| q             | quitte                                                            |
| .             | remplace et quitte                                                |
| ,             | remplace, mais ne bouge pas le ~point~ tout de suite              |
| \!            | remplace toutes les occurences                                    |
| \^            | revient à la précédente occurence                                 |
| E             | édite la chaîne de remplacement                                   |
| Y             | remplace toutes les occurences de tous les buffers restants       |
| N             | ne remplace pas toutes les occurences de ce buffer, va au suivant |

* Rectangles
| raccourci | commande                   | ce que ça fait                                                          |
|-----------+----------------------------+-------------------------------------------------------------------------|
| C-x SPC   | rectangle-mark-mode        | la région courante/future devient un rectangle                          |
| C-x r c   | clear-rectangle            | vide le rectangle (remplit de blanc)                                    |
|           |                            | avec ~ARG~, remplit de blanc les parties du rectangle qui étaient vides |
| C-x r d   | delete-rectangle           | supprime le rectangle                                                   |
|           |                            | avec ~ARG~, remplit de blanc les parties du rectangle qui étaient vides |
| C-x r k   | kill-rectangle             | supprime le rectangle et le sauve dans le kill-ring                     |
|           |                            | avec ~ARG~, remplit de blanc les parties du rectangle qui étaient vides |
| C-x r o   | open-rectangle             | ouvre un rectangle (insère des blancs)                                  |
|           |                            | avec ~ARG~, remplit de blanc même s’il n’y a pas de texte à droite      |
| C-x r r   | copy-rectangle-to-register | copie le rectangle dans un registre                                     |
| C-x r t   | string-rectangle           | insère un rectangle                                                     |
| C-x r y   | yank-rectangle             | colle un rectangle                                                      |
| C-x r M-w | copy-rectangle-as-kill     | copie le rectangle et le sauve dans le kill-ring                        |

* Registres
Demande un registre : un caractère
| raccourci   | commande                         | ce que ça fait                                                                             |
|-------------+----------------------------------+--------------------------------------------------------------------------------------------|
| C-x r SPC   | point-to-register                | stocke l’emplacement du ~point~ dans le registre                                           |
|             |                                  | avec ~ARG~, enregistre la configuration de la frame                                        |
| C-x r C-@   | point-to-register                |                                                                                            |
| C-x r C-SPC | point-to-register                |                                                                                            |
| C-x r +     | increment-register               | incrémente le registre si c’est un nombre                                                  |
|             |                                  | avec ~ARG~, ajoute ~ARG~ au registre                                                       |
| C-u C-x r + |                                  | ajoute la région entre ~point~ et ~mark~ si c’est du texte et supprime la région           |
| C-x r f     | frameset-to-register             | stocke l’ensemble des frames dans le registre                                              |
| C-x r i     | insert-register                  | insère le contenu du registre, le ~point~ avant et la ~mark~ après le texte inséré         |
|             |                                  | avec ~ARG~, inverse le ~point~ et la ~mark~                                                |
| C-x r j     | jump-to-register                 | déplace le ~point~ vers l’emplacement stocké dans le registre                              |
|             |                                  | si c’est un fichier, va au fichier                                                         |
|             |                                  | si c’est une configuration de windows, rétablit la frame                                   |
|             |                                  | si c’est une configuration de frames, rétablit les frames                                  |
|             |                                  | avec ~ARG~, supprime les frames en plus                                                    |
| C-x r n     | number-to-register               | stocke à partir du ~point~ jusqu’à la fin le chiffre dans le registre, 0 si pas de chiffre |
|             |                                  | avec ~ARG~, stocke ~ARG~ dans le registre                                                  |
| C-x r r     | copy-rectangle-to-register       | stocke le rectangle dans le registre                                                       |
|             |                                  | avec ~ARG~, le supprime                                                                    |
| C-x r s     | copy-to-register                 | stocke la région dans le registre                                                          |
| C-x r x     | copy-to-register                 | avec ~ARG~, la supprime                                                                    |
| C-x r w     | window-configuration-to-register | stocke la configuration des windows de la frame actuelle                                   |
| C-x r m     | bookmark-set                     | ajoute un bookmark à l’emplacement courant                                                 |
|             |                                  | avec ~ARG~, n’écrase pas si un bookmark de même nom existe déjà                            |
| C-u C-x r m |                                  | insère le nom du dernier bookmark utilisé dans le document                                 |
| C-x r b     | bookmark-jump                    | va au bookmark                                                                             |
| C-x r l     | bookmark-bmenu-list              | affiche la liste des bookmarks                                                             |
|             | bookmark-delete                  | supprime la première occurrence seulement                                   |

* Divers
| raccourci   | commande                   | ce que ça fait                                             |
|-------------+----------------------------+------------------------------------------------------------|
| C-x C-c     | save-buffers-kill-terminal | demande s’il faut sauver chaque buffer, ferme la connexion |
|             |                            | avec ~ARG~, sauve sans demander puis ferme                 |
| C-z         | suspend-frame              | suspend la frame courante                                  |
| C-g         | keyboard-quit              | quitte la commande en cours                                |
| C-x u       | undo                       | annule les précédents changements                          |
| C-_         | undo                       | avec ~ARG~, annule les ~ARG~ derniers changements          |
| C-/         | undo                       | si ~mode-transient-mark~, limite à la région               |
| C-u C-_     |                            | si pas en ~mode-transient-mark~, limite à la région        |
|-------------+----------------------------+------------------------------------------------------------|
| M-/         | dabbrev-expand             | complétion dynamique : les précédents mots du buffer       |
|             |                            | avec ~ARG~, prend la ~ARG~ ième possibilité                |
| C-u M-/     |                            | les suivants, les autres buffers                           |
| M-$         | ispell-word                | ispell sur le mot                                          |
|             |                            | avec ~ARG~, retourne à une vérification interrompue        |
| M-!         | shell-command              | exécuter une commande shell                                |
|             |                            | avec ~ARG~, insère le résultat de la commande              |
| M-&         | async-shell-command        | comme shell-command mais ajoute un &                       |
| M-\vert     | shell-command-on-region    | exécuter une commande shell avec la région comme input     |
|             |                            | avec ~ARG~, remplace la région avec le résultat            |
| M-.         | find-tag                   | trouve le tag dans la table des tags courante              |
|             |                            | avec ~ARG~, trouve le prochain                             |
|-------------+----------------------------+------------------------------------------------------------|
| C-x C-e     | eval-last-sexp             | évalue la sexp avant le ~point~                            |
|             |                            | avec ~ARG~, insère le résultat dans le buffer              |
| M-0 C-x C-e |                            | insère le résultat non tronqué                             |
| M-: EXP     | eval-expression            | évalue la sexp EXP                                         |
|             |                            | avec ~ARG~, insère le résultat dans le buffer              |
| M-0 M-:     |                            | insère le résultat non tronqué                             |