#+TITLE: Ma cheat-sheet d’Emacs En construction. Version moins moche : fichier.org. * C-u Pour les commandes suivantes, je renseigne deux colonnes supplémentaires : ‰M-4 commande‰, et ‰C-u commande‰. Si ‰C-u‰ se comporte comme ‰C-u 4‰, je laisse vide. | 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 | faire la commande chiffres fois | | C-u 5 - | ----- | | 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 | | C-u C-u commande | répète la commande 16 fois | | C-u C-u * | **************** | |------------------------------------+------------------------------------------------------------------------------------------| | M-chiffres commande | fait la commande chiffres fois, comme C-u chiffres commande | | M-5 - | ----- | | M-1 M-6 * | **************** | |------------------------------------+------------------------------------------------------------------------------------------| | C-u commande | appelle la commande avec un comportement spécial | | 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 | | M-x yank (C-y) | colle le texte le plus récemment coupé, en mettant la marque au début, le point à la fin | | C-u 4 M-x yank (C-u 4 C-y) | colle le 4ème texte le plus récemment coupé | | C-u M-x yank (C-u C-y) | colle le texte le plus récemment coupé, en mettant la marque à la fin, le point au début | * Aide | raccourci | commande | ce que ça fait | M-4 commande | C-u commande | |-----------+------------------------+-----------------------------------------------------------------+--------------------------------------------+--------------| | C-h a | apropos | montre ce que fait la commande dans un buffer | montre aussi les fonctions non-interactive | idem | | 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 | demande la langue du tutoriel | idem | | 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 | | | | M-4 | C-u | |-----+------------------------+--------------------------+--------------------------------------------+-----| | C-a | move-beginning-of-line | aller en début de ligne | se déplace de 3 lignes vers le bas d’abord | | | M-a | backward-sentence | aller en début de phrase | remonte de 4 phrases | | | C-e | move-end-of-line | aller en fin de ligne | se déplace de 3 lignes vers le bas d’abord | | | M-e | forward-sentence | aller en fin de phrase | avance de 4 phrases | | | C-f | forward-char | lettre suivante | avance de 4 lettres | | | M-f | forward-word | mot suivant | avance de 4 mots | | | C-b | backward-char | lettre précédente (backward) | recule de 4 lettres | | | M-b | backward-char | mot précédent | recule de 4 mots | | | C-p | previous-line | ligne précédente | recule de 4 lignes | | | C-n | next-line | ligne suivante | avance de 4 lignes | | | C-v | scroll-up-command | avance le texte d’un écran | déplace le texte de 4 lignes vers le haut | | | M-v | scroll-down-command | recule le texte d’un écran | déplace le texte de 4 lignes vers le bas | | | C-M-v | scroll-other-window | avance le texte de la prochaine fenêtre d’un écran | déplace le texte de la prochaine fenêtre de 4 lignes | | | C-l | recenter-top-bottom | met la ligne courante avec le point au centre (en haut/en bas, après appels successifs) | met la ligne courante sur la 4e ligne de la fenêtre | met la ligne au centre | | M-g g chiffres | goto-line | aller à la ligne chiffres du buffer | va à la 4e ligne du buffer | va à la 4e ligne de l’autre buffer | | M-g M-g chiffres | goto-line | | | | | C-x l chiffres | goto-line | | | | | 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) | met le point sur la 4e ligne de la fenêtre | | | M-< | beginning-of-buffer | aller au début du buffer | aller au 4/10 du buffer | ne laisse pas de marque à la précédente position | | M-> | end-of-buffer | aller à la fin du buffer | aller au 4/10 à partir du bas | ne laisse pas de marque à la précédente position | | M-m | back-to-indentation | aller au premier caractère non blanc de la ligne | | | * Éditer | | | | M-4 | C-u | |----------------+------------------------------+---------------------------------------------------------------------------------+----------------------------------------------+-------------------------------------------| | M-i | tab-to-tab-stop | insère des espaces/tabulations jusqu’au prochain tab-stop | | | | C-i | indent-for-tab-command | indente la ligne ou la région, ou insère une tabulation, ou fait une complétion | | | | TAB | indent-for-tab-command | dépend beaucoup du mode | | | | C-x TAB | indent-rigidly | indente toutes les lignes de la région avec [S-]gauche/droite | indente de 4 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 | insère 4 lignes | | | C-o | open-line | insère une ligne en laissant le point à sa place | insère 4 lignes | | | C-M-o | split-line | sépare la ligne en déplaçant la fin verticalement | n’insère pas fill-prefix | | | C-x C-o | delete-blank-lines | supprime les lignes vides | | | | M-^ | delete-indentation | joint cette ligne et la précédente | joint cette ligne et la suivante | | | M-\ | delete-horizontal-space | supprime toutes les espaces/tabulations autour du point | supprime seulement celles précédent le point | | | M-SPC | just-one-space | supprime les espaces/tabulations autour du point et ne laisse qu’une espace | laisse 4 espaces | | | | | avec un argument négatif, supprime également les fins de ligne | | | | M-q | fill-paragraph | reformate le paragraphe sur ou après le point, ou les paragraphes de la région | idem et justify | | | C-x f chiffres | set-fill-column | définit fill-column à chiffres | définit fill-column à 4 | définit fill-column à la colonne courante | | M-o M-s | center-line | centre la ligne | centre 4 lignes | | | M-o M-S | center-paragraph | centre le paragraphe | | | | C-t | transpose-chars | échange 2 lettres | avance le caractère précédent le point de 4 caractères | | | M-t | transpose-words | échange 2 mots | avance le mot de 4 mots | | | M-0 M-t | | échange le mot vers le point avec le mot vers la marque | | | | C-x C-t | transpose-lines | échange la ligne courante et la précédente | déplace la ligne précédente de 4 lignes | | | M-0 C-x C-t | | échange la ligne courante avec celle de la marque | | | | M-u | upcase-word | met en lettres capitales le mot | et les 3 prochains | | | M-l | downcase-word | met en lettres minuscules le mot | et les 3 prochains | | | M-c | capitalize-word | met en lettre capitale la lettre et va à la fin du mot | et les 3 prochains | | | | | pour ces 3 commandes | | | | | | si au milieu d’un mot, ne prend pas en compte le début | | | | | | avec un argument négatif, le point reste en place | | | | C-x C-u | upcase-region | met en lettres capitales la region | | | | C-x C-l | downcase-region | met en lettres capitales la region | | | Si font-lock-mode n’est pas on | 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 | | | | M-4 | C-u | |-----------+----------------------+------------------------------------------------------------------------------------------+----------------------------------------+-------------------------------------------| | C-d | delete-char | supprime la prochaine lettre | kill les 4 prochaines lettres | | | M-d | kill-word | kill le prochain mot | kill les 4 prochains mots | | | BackSpc | delete-backward-char | supprime la lettre précédente | kill les 4 lettres précédentes | | | M-BackSpc | backward-kill-word | kill le mot précédent | kill les 4 mots précédents | | | C-k | kill-line | kill le reste de la ligne | kill les 3 prochaines lignes également | | | M-0 C-k | | kill le 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é, en mettant la marque au début, le point à la fin | colle le 4ème kill le plus récent | met la marque à la fin, le point au début | | M-y | yank-pop | après un yank (ou un yank-pop) remplace le yank par le kill précédent | par le 4ème kill le plus récent | | | M-z x | zap-to-char | kill jusqu’au caractère x inclus | jusqu’au 4ème caractère x | | * Fenêtres/buffers | | | | M-4 | C-u | |-------+-----------------------------+-------------------------------------------------------------------------------------+-----------------------------------+-----| | 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 | la window du dessus fait 4 lignes | | | C-x 3 | split-window-right | splitte la window en 2, la nouvelle est à droite | la window de gauche fait 4 lignes | | | C-x 0 | delete-window | supprime la fenêtre | | | | C-x o | other-window | choisit la prochaine window | choisit la 4e prochaine window | | | C-x ^ | enlarge-window | réduit la window d’une ligne | réduit de 4 lines | | | C-x { | shrink-window-horizontally | réduit la window d’une colonne | réduit de 4 colonnes | | | C-x } | enlarge-window-horizontally | agrandit la window d’une colonne | agrandit de 4 colonnes | | | C-x K | kill-buffer | kill le buffer | | | | C-x droite/gauche | next/previous-buffer | va au buffer suivant/précédent | | | | C-x b | switch-to-buffer | affiche le buffer dans la window (le crée s’il n’existe pas) | | | | C-x C-b | list-buffers | affiche une liste des buffers existants | affiche uniquement ceux qui visitent un fichier | | | C-x C-q | read-only-mode | change le fait que le buffer soit en lecture seule | le met en lecture seule. Un argument négatif le met en écriture | | | C-x 4 0 | kill-buffer-and-window | tue 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 f | find-file-other-window | ouvre le fichier dans une autre fenêtre | | | * Fichiers | | | | M-4 | C-u | |-------------+-------------+-------------------------------------------------------------------------------------------------+------------------------------------------+----------------------------------------------------------------------| | 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-s | save-buffer | sauve le buffer courant dans le fichier visité. La version précédente devient le backup | | 1 fois : cette version devient le backup de la prochaine sauvegarde | | | | | | 2 fois : la version précédente devient le backup inconditionnelement | | M-0 C-x C-s | | ne fait pas un backup de la version précédente | | | | | | | | 3 fois : 1 fois + 2 fois | | | | | | | | C-x C-w | write-file | écrit le buffer dans le fichier en argument | ne demande pas confirmation pour écraser | | | C-x i | insert-file | insère le contenu du fichier dans le buffer après le point, met la marque après le texte inséré | | | * Marques | | | | M-4 | C-u | |-----------+-------------------------+--------------------------------------------------------+-----------------------------------------+-----| | C-SPC | set-mark-command | fait une marque (donc le début d'une région/rectangle) | fait une marque et va à la précédente | | | C-@ | set-mark-command | | | | | C-x C-SPC | pop-global-mark | va à la précédente marque globale | | | | C-x C-@ | pop-global-mark | | | | | M-@ | mark-word | marque jusqu'à la fin du mot | marque jusqu’au 4 prochains mots | | | C-x C-x | exchange-point-and-mark | échanger le point et la marque | ne passe pas en Transient | | | M-h | mark-paragraph | sélectionne le paragraphe, le point au début | met la marque à la fin du 4e paragraphe | | | C-x h | mark-whole-buffer | sélectionne tout le buffer | | | * Macro | | | | M-4 | C-u | |------------------+--------------------------------------+----------------------------------------------------------+--------------------------------------------+-------------------------------------------------------------| | 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 C-k C-a | kmacro-add-counter | demande la valeur à ajouter au compteur | ajoute 4 au compteur | remet l’ancienne valeur | | C-x C-k C-c | kmacro-set-counter | demande quelle valeur mettre au compteur | met 4 au compteur | remet le compteur à la valeur avant l’itération de la macro | | C-x C-k C-e | kmacro-edit-macro-repeat | édite la dernière macro | | | | C-x C-k C-f | kmacro-set-format | met le compteur au format donné | | | | C-x C-k TAB | kmacro-insert-counter | insère le compteur, ajoute 1 | insère et ajoute 4 | insère le précédent compteur et le ne modifie pas | | 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 | prochaine macro dans le ring | 4e prochaine macro dans le ring | | | C-x C-k C-p | kmacro-cycle-ring-previous | précédente macro dans le ring | 4e 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 | la 4e dernière macro | | | C-x C-k SPC | kmacro-step-edit-macro | exécute la derinè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 | | | | C-x C-k l | kmacro-edit-lossage | édite les 300 dernières frappe comme une macro | | | | C-x C-k n | kmacro-name-last-macro | nomme la dernière macro | | | | 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 dans le registre | | | | F3 | kmacro-start-macro-or-insert-counter | met le compteur à 0, enregistre la macro | met le compteur à 4, enregistre la requête | ajoute à la dernière macro | | | | en enregistrant, insère le compteur et ajoute 1 | insère et ajoute 4 | 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 | exécute 4 fois | exécute la penultième macro | * Recherches | | | | M-4 | C-u | |-------+-------------------------+----------------------------------------------------------------------------------+-----------------------------+-----| | C-s | isearch-forward | fait une recherche incrémentale après le point | avec regexp | | | C-r | isearch-backward | fait une recherche incrémentale avant le point | avec regexp | | | M-% | query-replace | chercher/remplacer (dans la région si en mode transient mark avec marque active) | remplace les mots seulement | | | C-M-s | isearch-forward-regexp | chercher avec regexp | sans regexp | | | C-M-r | isearch-backward-regexp | chercher avec regexp en arrière | sans regexp | | | C-M-% | query-replace-regexp | chercher/remplacer avec regexp | 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) | recherche normale | | | M-s . | isearch-forward-symbol-at-point | cherche le symbole sur lequel le point se trouve | | | | M-s o | occur | affiche les lignes contenant la regexp dans un buffer | avec 4 lignes de contexte | | | M-s h . | highlight-symbol-at-point | highlight le symbole sur lequel le point se trouve | | | | M-s h l | highlight-lines-matching-regexp | highlight les lignes qui matchent la regexp | | | | M-s h r | highlight-regexp | highlight la regexp | | | | M-s h u | unhighlight-regexp | enlève l'highlight sur la regexp | | enlève tous les highlights | Pendant une recherche | BackSpc | supprime le dernier caractère de la recherche | | Entrée | sort de la recherche, laisse le point à l’emplacement trouvé | | M-p | cherche le précédent item 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 à la fin de la chaîne de recherche | | M-s C-e | ajoute la fin de la ligne à 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 les mots | | M-s e | édite la chaîne de recherche | | M-% | lance query-replace avec la dernière chaîne de recherche à remplacer | | 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 et ne bouge pas le point tout de suite | | \! | remplace toutes les occurences du modem | | \^ | revient à la précédente | | 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 | | | | M-4 | C-u | |-----------+----------------------------+-----------------------------------------------------+-------------------------------------------------------------+-----| | C-x r c | clear-rectangle | vide le rectangle (remplit de blanc) | remplit de blanc les parties du rectangle qui étaient vides | | | C-x r d | delete-rectangle | supprime le rectangle | 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 | remplit de blanc les parties du rectangle qui étaient vides | | | C-x r o | open-rectangle | ouvre un rectangle (insère des blancs) | 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 | | | | M-4 | C-u | |-------------+----------------------------------+------------------------------------------------------------------------------------------+-----------------------------------------------------+------------------------------------------------------------| | C-x r SPC | point-to-register | stocke l’emplacement du point dans le registre | 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 | ajoute 4 au registre | | | | | ajoute la région entre point et marque 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 marque après le texte inséré | inverse le point et la marque | | | 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 | 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 | stocke 4 dans le registre | | | C-x r r | copy-rectangle-to-register | stocke le rectangle dans le registre | le supprime | | | C-x r s | copy-to-register | stocke la région dans le registre | la supprime | | | C-x r x | copy-to-register | | | | | 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 | n’écrase pas si un bookmark de même nom existe déjà | 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 | | | * Divers | | | | M-4 | C-u | |---------+----------------------------+------------------------------------------------------------+-----------------------------------+-----| | C-x C-c | save-buffers-kill-terminal | demande s’il faut sauver chaque buffer, ferme la connexion | 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 | annule les 4 derniers changements | | | C-_ | undo | (si en mode transient mark, | (si pas en mode transient mark, | | | C-/ | undo | avec la marque active uniquement dans la région) | limite à la région) | | | M-/ | dabbrev-expand | complétion dynamique : les précédents mots du buffer | prend la 4ème possibilité | | | | | les suivants, les autres buffers | | | | M-$ | ispell-word | ispell sur le mot | retourne à la vérification | | | M-! | shell-command | exécuter une commande shell | 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 | remplace la région avec le résultat | | | M-. | find-tag | trouve le tag dans la table des tags courante | trouve le prochain | | | C-x C-e | eval-last-sexp | évalue la sexp avant le point | 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 | insère le résultat dans le buffer | | | M-0 M-: | | | insère le résultat non tronqué | |