Raccourcis claviers Emacs

De Ensiwiki
Révision de 19 septembre 2012 à 08:00 par Evrardh (discussion | contributions) (ajout M-; (comment-dwim) dans "manip région")

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

Notation

La notation emacs pour les raccourcis consiste à écrire séquentiellement les touches à presser, préfixées des modificateurs. C-x C-f veut dire "maintenir control, puis appuyer sur x et f", C-x f signifie "maintenir control, appuyer sur x, lâcher control, appuyer sur f" et C-M-f "appuyer sur f en maintenant control et meta". Les préfixes standards sont C pour control, M pour meta (alt sur la plupart des claviers), S pour shift, et s pour super (la touche avec le logo d'un certain éditeur de logiciels)

Tutorial

Le tutorial d'emacs est disponible par C-h t. Il est très complet sur les commandes de base, mais un peu long à suivre.

Commandes de base

La convention est d'utiliser control pour les "petites" actions et meta pour les "grosses" actions. Cela donne donc :

  • b/f : backward/forward. Avec control : par caractère. Avec meta : par mot. Avec control + meta : par expression parenthésée.
  • p/n : previous/next. Avec control : par ligne.
  • d : delete. Avec control : par caractère. Avec meta : par mot.
  • a/e : début/fin. Avec control : par ligne. Avec meta : par phrase. Avec control + meta : par fonction
  • k : kill. Avec control : par ligne. Avec meta : par phrase. Avec control + meta : par expression parenthésée.
  • t : tranpose. Avec control : par caractère. Avec meta : par mot (comportement différent en fonction de la position dans le mot). Avec control + meta : par expression parenthésée. Par C-x C-t : par ligne (très utile !). Pas aussi débile que ca en a l'air, et très rapide quand utilisé correctement.
  • v : scroll. Avec control : vers le bas. Avec meta : vers le haut.
  • </> : début/fin de buffer. Avec meta uniquement.

C'est un peu plus compliqué à utiliser que la souris ou les flèches au début, mais à terme bien plus puissant, puisque cela vous permet de garder vos mains sur la "home row". Une modification qui peut aider à utiliser ces commandes plus efficacement est de mapper l'inutile caps lock sur control. Il existe différentes façons de le faire, en fonction de votre OS. Google vous en dira plus.

Recherche

La commande principale de recherche est C-s (qui n'est probablement pas celle à laquelle vous vous attendez. C-x C-s pour sauvegarder), ou C-r pour les recherches en arrière. La recherche est incrémentale (comme dans firefox par exemple) : vous tapez le texte, et les matches apparaissent au fur et à mesure. Pratiquement n'importe quelle action (la plus simple étant d'appuyer sur entrée) fait sortir du mode de recherche, et C-g revient au début de la recherche. C'est très simple et pratique ; certains utilisateurs d'emacs en font leur moyen de déplacement principal dans le texte.

Pour rechercher par expressions régulières, C-M-s.

Pour remplacer, M-% (oui, c'est compliqué à taper. Si ca ne vous plait pas, redéfinissez le :)). C'est une fonction "query", c'est à dire qu'elle prompte pour chaque remplacement à effectuer (y pour remplacer et passer au suivant, n pour ne pas remplacer, ! pour tout remplacer, q pour annuler). C-M-% pour remplacer par expressions régulières.

Manipulation de fichiers

  • C-x C-f : ouvrir un nouveau fichier.
  • C-x C-s : sauvegarder le fichier en cours.
  • C-x C-w : enregistrer le fichier courant sous un autre nom.

Manipulation de buffers

  • C-x b : changer de buffer.
  • C-x C-b : lister les buffers.
  • C-x k : tuer un buffer (le buffer courant, par défaut).

Manipulation de fenêtres

  • C-x 1 : revenir à une fenêtre.
  • C-x 2 : splitter horizontalement.
  • C-x 3 : splitter verticalement.
  • C-x o : changer le focus entre plusieurs fenêtres.

Manipulation de la région

La région s'étend de la "mark" (marque que vous laissez pour repérer la région) au "point" (endroit où votre curseur est situé).

  • C-espace : poser la mark à l'endroit actuel.
  • C-u C-espace : "pop the mark". La mark est en faite gérée comme une pile. Cette commande vous permet de revenir à des mark anciennes.
  • C-x C-x : échanger le point et la mark. Permet d'éditer simultanément deux endroits du même texte.
  • C-w : couper la région.
  • M-w : copier la région.
  • C-y : coller (yank).
  • M-y : si la dernière action était un coller, cycler parmi les précédentes possibilités.
  • M-; : commente ou dé-commente la région (selon la syntaxe de commentaire du mode actuel).

Macros

Enregistrer une macro permet d'automatiser les tâches répétitives. Envie d'ajouter un tiret au début des vingt prochaines lignes ? Définissez une macro qui rajoute tiret au début de la ligne en cours, et éxécutez la sur les vingt lignes suivantes.

  • C-x ( : démarrer une définition de macro.
  • C-x ) : terminer la définition de macro.
  • C-x e : éxécuter la dernière macro définie (e pour répéter).
  • C-x C-k r : éxécuter la dernière macro définie sur les lignes de la région sélectionnée.

Autres

  • C-g : commande "stop". A utiliser pour sortir de ce que vous êtes en train de faire. Utile quand emacs fait des choses que vous ne comprenez pas. Exemple : C-g dans le mode de recherche en sort.
  • M-x : commande étendue. Permet d'accéder directement aux fonctions lisp sans passer par leur raccourci éventuel. Exemple : M-x compile.
  • C-u : préfixe universel. Modifie le comportement de certaines fonctions. Vous pouvez taper un nombre pour utiliser ce nombre comme préfixe. Par exemple : C-u 80 - insère 80 caractères '-'.
  • C-x u, ou C-_ : annuler. Attention, emacs n'a pas de concept d'undo/redo, tout est fait par undo. Si vous tapez "salut", changez d'avis mais en fait vous appercevez que si, vous vouliez bien dire salut, un moyen simple est de faire undo, taper n'importe quelle lettre, et faire deux undo. Il existe des moyens de changer ce comportement si vous n'aimez pas.
  • C-x h : sélectionner tout le buffer. Notez également M-h qui sélectionne le paragraphe en cours.

Aide dans emacs

  • C-h k <un raccourci> affichera une fenêtre vous indiquant quelle fonction est appelée par un raccourci.
  • C-h f/v : aide sur une fonction/variable.
  • C-h a : a propos : recherche dans la documentation par mots clés.

Liens externes

  • La Refcard d'Emacs. Très pratique au début pour découvrir les raccourcis