Aujourd’hui, tu vas découvrir quelques fonctions avancées d’emacs et découvrir elisp le langage sur lequel repose emacs.
Il faut que tu saches qu’emacs c’est quelques primitives écrites dans le langage C, notamment un interpréteur lisp, et du code lisp. C’est ce qui explique, que l’on peut modifier en profondeur le comportement d’emacs à la volée.
C’est une étape un peu plus difficile que les autres : enjoy!!
Les raccourcis clavier #
Comme tu le sais M-x permet d’accéder aux fonctions1 d’emacs. (et M-X
permet d’accéder aux fonctions d’emacs en rapport avec le mode du
tampon ouvert)
Certaines de ces fonctions sont associées à des raccourcis clavier par exemple:
C-x C-s: Sauvegarder le fichier en coursC-g: Annuler l’opération précédenteC-y: Répéter l’opération précédente (collage)C-k: Supprimer la fin de la ligne jusqu’à la fin du mot actuelC-w: Supprimer le mot avant le curseurC-a: Se rendre au début de la ligne actuelleC-e: Se rendre à la fin de la ligne actuelleC-M-%: Chercher et remplacer une expression rationnelleM-%: Chercher et remplacerC-x C-k: ferme le tampon en cours
D’autres ne sont pas associées à un raccourci clavier, mais si tu veux pourvoir accéder rapidement à l’une de ces commandes tu peux créer tes propres raccourcis!
keymap #
Les raccourcis sont organisés sous forme de keymap .
M-x describe-keymap permet d’ouvrir un tampon qui liste tous les
raccourcis associés à un mode.
Essaye d’afficher tous les raccourcis associés à org-mode.
Raccourci global #
Pour créer des raccourcis il faut utiliser le langage lisp d’emacs. Il
est facile d’utiliser elisp dans org-mode. Il suffit de créer un bloc
de code par C-, puis choisir src et enfin écrire emacs-lisp:
Pour utiliser rapidement string-insert-rectangle:
- on crée un bloc de code pour elisp
- on utilise la fonction
global-set-key - avec le curseur dans le bloc de code on presse
C-cqui va évaluer le bloc et charger le nouveau raccourci dans emacs
(global-set-key (kbd "C-x r i ") 'string-insert-rectangle)
Raccourci #
Certains raccourcis ont vocation à être utiliser uniquement dans un mode, c’est en ce sens qu’ils sont qualifiés de .
La démarche est la même:
- on crée un bloc de code pour elisp
- on utilise la fonction
define-keyoulocal-set-key - avec le curseur dans le bloc de code on presse
C-cqui va évaluer le bloc et charger le nouveau raccourci dans emacs
Par exemple pour créer un squelette de table dans org
(local-set-key (kbd "C-c t c") 'org-table-create)
Pour aller plus loin #
Documentation #
- https://www.masteringemacs.org/article/mastering-key-bindings-emacs
- https://emacsdocs.org/docs/elisp/Keymaps
Paquetages dédiés aux raccourcis #
-
Les fonctions interactive d’emacs. D’autres fonctions sont accessibles différemment ↩︎