Table des matières
Emacs
Qu'est ce qu'Emacs ?
vi et ses clones sont des éditeurs très puissants et pratiques. Toutefois, ils ne sont pas souvent considérés comme extensibles. vim est une variante fructueuse et puissante de vi qui contredit cette tendance, en étant très extensible et léger. Cependant beaucoup d'utilisateurs préfèrent des éditeurs plus “lourds” et personnalisables. C'est pourquoi de nombreuses personnes (incluant l'auteur de ce chapitre 1)) préfèrent Emacs.
Sur une échelle de dix, Emacs peut aller jusqu'à onze en terme d'extensibilité. Au-delà d'un noyau en C, le reste d'Emacs est écrit dans une variante de Lisp, dont la plupart est directement visible, de façon à pouvoir le configurer ou l'étendre à volonté (beaucoup de bons tutoriels pour Emacs Lisp sont disponibles sur Internet). Toutes sortes d'extensions ont été écrites en Emacs Lisp, depuis la coloration syntaxique pour un langage obscur, jusqu'à un terminal intégré. De fait, il y a même une émulation de vi dans Emacs (nommé viper) ; vous pouvez donc toujours accéder au mode d'édition de vi, tout en utilisant la puissance du noyau d'Emacs.
Comme pour vi, il existe beaucoup de variantes d'Emacs (nommés “emacsen”). Toutefois, le plus souvent utilisé (et le seul disponible sous Slackware) est GNU Emacs. Lorsque des personnes parlent d'“Emacs”, ils sous-entendent généralement GNU Emacs.
Au contraire de vi, Emacs opère comme un éditeur standard par défaut. Cela signifie que la plupart des raccourcis clavier peuvent être utilisés sans changer de mode. Vous pouvez ouvrir un fichier et commencer à saisir du texte sans avoir à apprendre ce que fait tel ou tel mode, ou en ayant oublié celui que vous êtes en train d'utiliser.
Pour démarrer
Emacs peut-être lancé simplement en saisissant la commande emacs dans votre terminal. Lorsque vous lancez la commande sans aucune option, vous devriez obtenir quelque chose comme ceci :
Si vous utilisez X windows, Emacs peut lancer une interface graphique (GUI) au lieu de s'exécuter dans votre terminal. Si c'est le cas et que vous ne voulez pas d'interface, vous pouvez le lancer avec l'option '-nw'.
À ce point, vous pouvez explorer en utilisant les touches fléchées de votre clavier. Les éléments soulignés sont des liens et vous pouvez les activer en utilisant la touche Entrée. La documentation intégrée est très bonne et peut vous aider a comprendre les rouages sans trop de difficultés. Veuillez noter que les combinaisons de touches telles que Ctrl+H indiquent de presser la touche h tout en maintenant la touche CTRL appuyée. Même chose avec M-`, qui signifie de maintenir la touche Meta key (généralement Alt) en appuyant sur la touche `.
Par exemple, Ctrl+X Ctrl+C signifie d'appuyer sur la touche x tout en maintenant la touche CTRL, puis d'appuyer sur la touche x en maintenant la touche CTRL. Par ailleurs cette commande est une des plus importantes d'Emacs, elle permet de qutter le logiciel.
Vous pouvez également lancer emacs suivi d'un nom de fichier en option, ce qui ouvrira ce fichier, tout comme le fait vi. De cette manière, vous aurez accès au contenu du fichier en question. Vous pouvez naviguer dans le document en utilisant les touches fléchées habituelles et saisir du texte sans aucun souci.
Admettons que vous ayez fait quelques modifications et que vous voulez maintenant sauvegarder votre fichier. La combinaison de touches pour cela est Ctrl+XCtrl+S. Si vous avez créé un nouveau fichier, une confirmation vous sera demandée pour sauvegarder le contenu de ce qui est appelé un “micro-tampon” (“minibuffer”) ; une ligne vide sera affichée sous la ligne grise en bas de l'écran. Entrez le nom de fichier de votre choix et appuyez sur Entrée. Si vous ne souhaitez pas sauvegarder le fichier vous pouvez appuyer sur Ctrl+G, ce qui annule la demande de sauvegarde. Notez que l'auto-complétion avec la touche tabulation est le plus souvent disponible pour les opérations avec le “micro-tampon”.
Si vous souhaitez ouvrir un nouveau fichier dans la même session d'Emacs, tapez Ctrl+XCtrl+F. Vous devrez indiquer le nom d'un fichier dans le “micro-tampon”. Emacs ne vérifie pas si le fichier existe ou non. S'il n'existe pas un nouveau tampon sera crée pour lui (le fichier sera crée lors de la première sauvegarde avec Ctrl+XCtrl+S), ou il sera ouvert comme convenu. Toutefois, l'ancien fichier sera toujours ouvert ! Vous pouvez basculez de l'un à l'autre en utilisant Ctrl+XCtrl+B, en indiquant le nom du fichier (ou plus précisement, le nom du tampon), et en appuyant sur la touche Entrée.
Comment se déplacer
Tout comme vi, Emacs est plus ancien que l'existence des touches fléchées sur votre clavier. Tout comme vi, l'utilisation des touches fléchées est possible. Alors que les touches de déplacement de vi sont plus érgonomiques, celles d'emacs sont plus “mnémonique”. Cependant, il est toujours possible d'utiliser les principaux raccourcis clavier d'Emacs de manière rapide et efficace. Voici un tableau des principales combinaisons pour se déplacer :
Déplacement du curseur avec Emacs
Commande | Resultat |
---|---|
Ctrl+F | Déplace le curseur d'un caractère vers la droite (en avant) |
Ctrl+B | Déplace le curseur d'un caractère vers la gauche (en arrière) |
Ctrl+N | Déplace le curseur d'une ligne vers le bas (suivant) |
Ctrl+P | Déplace le curseur d'une ligne vers le haut (précédent) |
Bien sûr, tout comme avec vi il est possible de répeter ces commandes avec une valeur numérique. Si vous tapez M-1 M-0 Ctrl+P, ou Ctrl+U 10 Ctrl+P, le curseur se déplacera de 10 lignes vers le haut. Si vous tapez M-5 Ctrl+F ou Ctrl+U 5 Ctrl+F, le curseur se déplacera de cinq caractères vers la droite.
Obtenir de l'aide
Emacs dispose d'une large documentation, au point qu'il est souvent nommé l'éditeur “auto-documenté”. En effet il propose des mécanismes pour fournir de la documentation aux utilisateurs au moment où ils l'utilisent.
Voici quelques unes des fonctions utiles pour accéder à la documentation (elles commencent toutes par Ctrl+H) :
Accéder à la documentation d'Emacs
Commande | Résulat |
---|---|
Ctrl+H f NOM-FONCTION ↵ Enter | Affiche la documentation pour NOM-FONCTION |
Ctrl+H k Ctrl+X Ctrl+C | Affiche la documentation pour la fonction liée au raccourciCtrl+X Ctrl+C |
Ctrl+H t | Affiche le tutoriel pour Emacs |
Ctrl+H ? | Affiche toutes les fonctions d'aide |
Ctrl+H t est particulièrement utile si vous souhaitez vous formez à Emacs.
Appel de fonctions
Comme indiqué précédemment, Emacs propose un large choix de fonctions pour une utilisation interactive. Certaines d'entre elles, comme celles pour ouvrir et sauvegarder des fichiers, sont liées à des combinaisons de touches. Pour d'autres (comme celles pour se déplacer en début et fin de ligne) ne le sont pas. Pour les lancer, vous devez les invoquer. Par exemple, nous voulons appeller la fonction “fin de ligne”; nous devrons faire ceci :
M-x fin de ligne ↵ Enter
Et le curseur se déplacera en fin de ligne, comme l'indique le nom de la fonction.
Aide-mémoire pour Emacs
Bien qu'Emacs puisse être simple à utiliser, l'étendue de ses possibilités peut être déroutantes. Certaines des commandes les plus utiles d'Emacs sont listées ci-dessous. Certains points ont été simplifiés, en particulier pour ce qui concerne la sélection de texte. Ces concepts, et beaucoup plus, sont décrits dans le manuel d'Emacs et différents tutoriels en ligne. De bon résumés peuvent aussi être trouvé en recherchant sur le web.
Emacs Cheat Sheet
Commande | Résulat |
---|---|
Ctrl+F | Déplace le curseur d'un caractère vers la droite (en avant) |
Ctrl+B | Déplace le curseur d'un caractère vers la gauche (en arrière) |
Ctrl+N | Déplace le curseur d'une ligne vers le bas (suivant) |
Ctrl+P | Déplace le curseur d'une ligne vers le haut (précedent) |
Ctrl+H fNOM-DE-FONCTION↵ Enter | Affiche la documentation de la fonction NOM-DE-FONCTION |
Ctrl+H k Ctrl+X Ctrl+C | Affiche la documentation pour la fonction liée aux touchesCtrl+X Ctrl+C |
Ctrl+H T | Affiche le tutoriel d'Emacs tutorial |
Ctrl+H ? | Affiche toutes les fonctions relative à l'aide |
M-` | Accede à la barre de menu |
Ctrl+G | Annule l'opération en cours. Ceci est particulièrement utile avec le minibuffer. |
M-X NOM-DE-FONCTION ↵ Enter | Lance la fonction NOM-DE-FONCTION interactivement |
M-1 M-0 Ctrl+N | Déplace le curseur de dix lignes vers le bas |
Ctrl+U 10 Ctrl+N | Déplace le curseur de dix lignes vers le bas (comme précedemment) |
M-x début de ligne 2) | Déplace le curseur en début de ligne |
M-x fin de ligne 3) | Déplace le curseur en fin de ligne |
M-> | Déplace le curseur à la fin de l'espace tampon |
M-< | Déplace le curseur au début de l'espace tampon |
Ctrl+K | Remove text from the cursor to the end of the line and place it into the kill ring |
Ctrl+Espace | Passe en mode sélection (utlisez les touches fléchées pour vous déplacer) . Utilises C-espace à nouveau pour quitter ce mode. |
Ctrl+W | En mode sélection, supprime la zone sélectionnée et stocke le contenu dans le kill ring |
M-W | While in selection mode, store the selected region into the kill ring. |
C-Y | “Yanks” the contents of the kill ring and places them at the cursor's location |
Ctrl+/ | Undo the previous action. Unlike most other editors, this includes previous undo actions. |
Insert | Enable or disable overwriting characters |
Ctrl+S asdf ↵ Enter | Forward incremental search for the string “asdf”. Repeat Ctrl+S as needed to search for future items, or Ctrl+R (below) to search backwards. |
Ctrl+R asdf ↵ Enter | Backward incremental search for the string “asdf”. Repeat Ctrl+R as needed to search for future items, or Ctrl+S (above) to search forwards. |
M-% old ↵ Enter new ↵ Enter | Search for each instance of “old” and prompt you to replace it with “new”. You can force replacement of all items by typing ! at the replacement prompt. |
Ctrl+X Ctrl+C | Exit Emacs, prompting you to save each unsaved buffer before doing so |
Ctrl+X Ctrl+S | Save the currrent buffer to its file |
Ctrl+X Ctrl+W new-file.txt ↵ Enter | Save the current buffer to a file “new-file.txt” |
Navigation
Sources
- Source originale : http://www.slackbook.org/beta
- Publication initiale d'Alan Hicks, Chris Lumens, David Cantrell, Logan Johnson
- Traduction initiale de escaflown
- Traduction de Ellendhel