Emacs
Utilisation d'emacs
NDJCC : Où vous comprendrez bientôt pourquoi on surnomme cet éditeur Escape-Meta-Alt-Control-Shift ;)
Introduction
L'objectif de ce document n'est pas de faire de vous un pro d'emacs, mais plutôt de vous montrer que le monstre qu'est emacs n'est finalement pas si complexe que cela d'utilisation pour peu que l'on connaisse quelques fonctions élémentaires. Cette présentation sera donc fort sommaire. Évidement il faut fournir un petit effort de mémorisation.
Mais, vous allez me dire : "Pourquoi utiliser emacs, alors que mes autres éditeurs sont plus simples ?" D'abord parce qu'emacs est présent sur presque toutes les plates-formes (MS DOS, Windows, Unix, Linux et même d'autres). Ensuite parce qu'il fonctionne aussi bien en mode texte qu'en mode graphique. Enfin parce que vous êtes allergique à la puissance brutale de vi ! (emacs se prononce émax ...)
L'écran d'emacs
L'écran d'emacs (que ce soit un terminal ou une fenêtre) se divise en (au moins) quatre parties :
- la première ligne de l'écran qui constitue un menu. Celui n'est utile que sous X. (vous pouvez quand même l'appeler en mode terminal par F10, mais son fonctionnement est loin d'être intuitif).
- la dernière ligne de l'écran appelée mini-buffer dans laquelle on tape des commandes
- le reste de l'écran qui présente le texte en train d'être édité. Cette zone peut elle-même être divisée en plusieurs zones. Chacune des zones est suivie d'une ligne présentant les caractéristiques de ce qui est présent dans cette zone.
Les commandes
Quand vous utiliserez emacs, il vous arrivera de faire des erreurs dans l'entrée d'une commande, pour abandonner celle-ci tapez deux fois la touche <Echap>.
Dans presque toutes les combinaisons de touches, vous pouvez remplacer l'appui sur Alt par une pression de Echap.
Avec emacs, la plupart des commandes sont entrées avec les modificateurs Ctrl ou/et Alt. Le nombre de commandes disponibles dans emacs étant bien plus important que deux fois le nombre de touches du clavier (même s'il n'est heureusement pas nécessaire de les connaître toutes pour utiliser emacs confortablement), il faut utiliser ces modificateurs d'une façon légèrement différente de celle d'autres logiciels.
Pour les commandes simples, c'est « simple » : vous tapez le modificateur avant la touche de « fonction » et en la maintenant appuyée vous appuyez sur la touche de « fonction ».
Exemple : pour utiliser la commande d'effacement de ligne (qui est : Ctrl+k) vous appuyez sur Ctrl, et en maintenant Ctrl appuyée vous appuyez sur k, puis vous lâchez les deux touches.
Pour les commandes complexes, un exemple vaut mieux qu'un long discours :
Pour annuler une série de changements dans une région, la commande est : Ctrl+u Ctrl+x u, cela signifie que vous devez taper :
Ctrl+u, lâchez les touches (au moins le 'u'), puis :
Ctrl+x, lâchez les touches, puis :
u
Le curseur
Pour déplacer dans emacs, c'est simple : on utilise les touches fléchées (haut pour aller en haut, etc. ;). Les combinaisons de touches peuvent aussi être utilisées. Notez que les combinaisons précédées de Alt ont une portée plus grande (généralement sur des mots) que celles précédées par Ctrl.
Vous disposez également des combinaisons suivantes :
|
|
|
|
---|---|---|---|
|
|
||
|
|
||
|
|
|
|
|
|
|
|
|
|
||
|
|
||
|
|
||
|
|
Effacer du texte
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
||
|
|
||
|
|
|
|
Gestion des fichiers
|
|
|
| |
---|---|---|---|---|
|
|
|
| |
|
|
|
| |
|
|
|
| |
|
|
|
|
Attention :
Pour créer un nouveau fichier ne lancez pas emacs sans paramètre. Lancez le en précisant un nom de fichier inexistant ; il sera créé par emacs. Ou lancez emacs sans paramètre, puis ouvrez un fichier inexistant.
Histoires d'encodage : Lorsque l'on fait de la programmation, on arrive tôt ou tard à des problèmes d'encodage de fichiers. Avec Emacs, on peut facilement redéfinir l'encodage d'un fichier pour en changer l'encodage par exemple.
Voici la solution : c-x RET f
Ensuite le prompt accepte la completion donc iso-8859-15 ou utf-8 a vous de jouer.
Répétition de commande
Vous pouvez préciser à emacs de répéter une commande plusieurs fois. Pour cela vous devez la précéder d'un des préfixes suivants :
|
Effet |
---|---|
|
|
|
|
Vous pouvez également dire à emacs de répéter la dernière commande en tapant :
Ctrl+x z
à la suite de la dite commande. Exemple :
Ctrl+u 20 Ctrl+d (efface 20 caractères) Ctrl+x z z (efface encore 20 (premier z) + 20 (second z) caractères supplémentaires).
Les régions
Création des régions
Dans d'autres éditeurs, on peut sélectionner du texte avec le curseur (par exemple en maintenant la touche <shift> enfoncée). On peut évidement sélectionner du texte avec emacs, mais il ne fonctionne pas exactement comme peut s'y attendre l'utilisateur d'autres éditeurs. Dans emacs la zone sélectionnée est toujours définie entre une marque déposée par l'utilisateur et la position précédant le curseur (plus précisément entre la position du curseur et la position précédant celle-ci). Ainsi, pour définir une région, vous déposez une marque (voir ci-dessous) à une extrémité de la région, puis vous déplacez le curseur à l'autre extrémité.
Alors comment déposer cette marque ?
Ctrl+<espace>
ou
Ctrl+@
Attention : la marque est invisible ! Pour voir où elle se trouve, utilisez :
Ctrl+x Ctrl+x
qui échange la position du curseur avec la position de la marque. Utilisez-la une seconde fois pour revenir à la position précédente.
Attention : c'est un échange effectif : la marque devient la position du curseur !
Attention : à partir du moment ou vous avez posé la marque, il existe toujours une région !
Copier/Couper/Coller
|
Effet |
|
Effet |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
Modification des régions
|
Effet |
|
Effet |
---|---|---|---|
|
|
|
|
|
|
Régions rectangulaires
|
Effet |
---|---|
|
|
|
|
|
|
|
|
Les fenêtres d'emacs
Les fenêtres au sens d'emacs, ne sont pas celles que l'on a l'habitude de voir : elles ne peuvent pas se recouvrir ! Si vous voulez utilisez emacs avec des fenêtres qui se recouvrent, il faut voir du côté des cadres (frame) que je ne décrirais pas ici.
Les fenêtres d'emacs sont des zones rectangulaires qui divise la fenêtre (au sens X Window) d'emacs verticalement ou horizontalement.
Pour diviser l'écran d'emacs en deux fenêtres et les manipuler, il faut utiliser :
|
Effet |
---|---|
|
pour couper horizontalement en 2 la fenêtre où se trouve le curseur |
|
pour couper verticalement en 2 la fenêtre où se trouve le curseur |
|
pour changer de fenêtre active |
|
pour ne garder que la fenêtre du curseur |
|
pour ouvrir un fichier dans une autre fenêtre |
|
pour afficher le contenu d'un répertoire dans une autre fenêtre |
|
pour ouvrir une nouvelle fenêtre avec le contenu du buffer courant |
Quelques modes et fonctions d'Emacs
par POINT dumur CHEZ free POINT fr Hélène
A l'attention de ceux qui utilisent ce "couteau suisse" et qui ne parlent pas un mot de Lisp !.
Généralités
Un mode d'Emacs est schématiquement, une fonction, qui serait appelée à chaque chargement d'un fichier donné, ou automatiquement au lancement d'Emacs. Dans ce cas, une ligne sera rajoutée dans le fichier de configuration .emacs.
On pourrait aussi parler de bibliothèque, de librairies, qui sont ajoutées au programme principal pour en augmenter les fonctionnalités.
Cette "fonction" se présente comme un fichier .el écrit en Lisp, (parfois d'une archive de plusieurs fichiers), qui sera copié dans un sous-répertoire donné où Emacs pourra aller le lire et l'utiliser.
Que fait-on avec ce fichier (cette archive) une fois téléchargée ?
- S'il s'agit d'un fichier seul (c'est le cas le plus simple)
- copier ce fichier dans le sous-répertoire adéquat /usr/share/emacs/site-lisp/ par exemple
- lire les commentaires au début du fichier, qui vous fourniront pas mal d'indications sur les modalités d'utilisation et d'installation du programme.
On peut aussi, pour des raisons de rapidité et d'efficacité, compiler le programme, avec l'instruction M-x byte-compile-file NOM-DU-FICHIER RET, ou, en mode Dired avec B sur le nom du fichier, mais ce n'est pas du tout obligatoire.
Une fois ceci fait, il suffira de rajouter une ligne au .emacs (et de relancer Emacs, bien sûr) pour pouvoir utiliser cette nouvelle fonction.
- S'il s'agit d'une archive (.tar.gz)
- Décompresser l'archive selon la méthode habituelle/li>
- Lire les fichiers README et INSTALL. Dans ce dernier, vous trouverez toutes les indications pour l'installation des différents fichiers requis. La plupart du temps, il suffira d'exécuter les commandes ./configure, make et make install pour que l'installation soit effective.
- Enfin, bien sûr, on rajoutera les options de configuration dans le .emacs, comme vu ci-dessus.
Ecouter des mp3
Emacs est un fantastique éditeur de textes, mais parfois, en travaillant avec lui, on peut avoir envie d'écouter de la musique, et ceci, sans avoir à utiliser un autre programme. La fonction mpg123.el est faite pour ça !
Il faut bien sûr avoir sur son disque dur le programme mpg123, qui est fourni avec la plupart des distributions, ou qui peut être téléchargé et installé sans difficultés (voir la logithèque de Léa), la fonction mpg123.el en sera le front end.
- Une fois récupéré le fichier mpg123.el, le copier dans le sous-répertoire /usr/share/emacs/site-lisp/
- puis, ouvrir son .emacs, et rajouter la ligne : (autoload 'mpg123 "mpg123" "A Front-end to mpg123" t)
La fonction autoload permet de dire à Emacs qu'une fonction existe, et dans quel fichier. Il se chargera ensuite de charger le fichier en question au premier appel de cette fonction.
- Relancer Emacs, pour que le changement de configuration soit pris en compte. (ou simplement taper M-x load-file RET ~/.emacs, ce qui a pour effet d'évaluer le fichier, c'est à dire lire les indications qu'il contient )
- Ensuite, taper M-x mpg123 RET. Il vous sera demandé le chemin du fichier (ou du sous-répertoire dans lequel sont les fichiers) à écouter et « let's listen the music ! » comme il est conseillé dans le minibuffer.
A ce niveau là, on se trouve devant une fenêtre à partir de laquelle on va pouvoir piloter son écoute musicale avec une vingtaine d'options (réglage du son, choix des pistes, pause, retour en arrière, avance, etc...) il suffit de lire et de choisir la touche à taper ! Et bien sûr, personne ne vous empêche de continuer votre travail dans une autre fenêtre !
On peut écouter aussi ses .ogg, puisque le front end fonctionne aussi avec ogg123 (voir la logithèque de Léa).
Corriger ses fautes d'orthographe à la volée
Ispell est un correcteur orthographique bien connu. Pour l'utiliser en langue française, il est recommandé d'adjoindre à son .emacs la ligne suivante :
On l'appelera ensuite avec M-x ispell-buffer, ou ispell-region selon ce que l'on souhaite. Mais si on veut qu'au fur et à mesure de la frappe, les fautes soient signalées ? Flyspell est fait pour ça !
Si vous n'avez pas déjà flyspell.el dans votre distribution, vous pouvez le télécharger à l'INRIA. Ensuite, vous rajouterez (setq flyspell-default-dictionary "francais") dans votre .emacs, afin de pouvoir l'appeler quand vous en aurez besoin, et avoir un dictionnaire français.
Trois façons de l'utiliser
On peut simplement taper M-x flyspell-mode RET pour activer le mode de correction à la volée.
Bien entendu, on peut aussi automatiser son chargement en ajoutant
au .emacs, ce qui le rendra opérationnel à chaque lancement d'Emacs (mais ce n'est pas forcément souhaitable, à vous de voir..).
Enfin, on peut l'appeler à volonté, en lui affectant une touche : par exemple, après avoir rajouté dans le .emacs
(global-set-key [f2] 'flyspell-mode)
en tapant F2 on lancera le mode de correction automatique.
Flyspell changera la couleur du mot mal orthographié, ou inconnu de son dictionnaire. Un appui sur le bouton du milieu de la souris fera apparaître un menu contextuel qui permet, soit de corriger le mot, en utilisant un de ceux qui sont proposés, soit de l'ajouter au dictionnaire, soit de l'accepter pour cette session ou pour ce buffer uniquement. Les doublons seront marqués d'une autre couleur.
À noter que Flyspell est très pratique en édition LaTeX puisqu'il sait reconnaître les balises TeX et ne pas s'y arrêter. On peut rajouter
à cet effet.
Editer ses scripts POV confortablement
Les scripts POV-ray sont de simples fichiers texte, et bien entendu, un simple éditeur de texte permet de les éditer, donc Emacs le peut ! Mais il peut faire beaucoup plus aussi... On voudrait avoir une coloration syntaxique agréable, bien pratique pour corriger un script et le mettre au point, avoir des indentations automatiques, et aussi lancer le rendu des images sans avoir à ouvrir une seconde fenêtre où on ouvrira un shell ( M-x shell ou eshell selon les habitudes de chacun) pour lancer la commande adéquat. pov-mode.el le fait !
L'installation de ce fichier est identique à ce qui a été vu plus haut, il sera copié à l'endroit où Emacs pourra le retrouver. Ensuite, c'est tout simple, il suffit d'ouvrir un fichier avec l'extension .pov pour bénéficier des avantages de ce mode. Ne pas oublier toutefois d'ajouter ces quelques lignes dans le .emacs :
Ensuite, sans quitter le buffer actif, un simple C-c C-c (avec choix possible quant à la qualité, la définition, etc..) lancera le rendu..
Plus de détails sur le site : http://www.acc.umu.se/~woormie/povray/.
Avoir des scripts php/html lisibles...
Emacs a de nombreux modes pour faire de la programmation en de nombreux langages. Comme pour POV, ils permettent les indentations, la coloration syntaxique, etc... et sont spécifiques au langage choisi (C, lisp, php, html).
Donc, si on édite un fichier .php, il suffit d'avoir php-mode.el et au lancement d'un fichier .php, les fonctionnalités incluses dans ce mode seront immédiatement actives. De même, avec html pour lequel il existe plusieurs modes.
Toutefois, si on édite un fichier html, dans lequel il y a des lignes de php, par exemple, la coloration syntaxique "s'emmêle les pieds", ce que comprend un mode, l'autre l'interprète mal, et le résultat devient bien difficile à lire... C'est là que mmm-mode (ou multi mode, mmm étant l'abréviation de multi major modes) est indispensable.
Ce mode pourra soit être appelé à la demande, soit automatiquement lors du lancement d'Emacs, et dans ce cas, à l'ouverture d'un fichier d'extension .php, il sera opérationnel.
mmm-mode s'installe de façon tout à fait standard : décompresser l'archive, lire le fichier INSTALL, taper successivement :
make
make install
Normalement, les fichiers doivent être arrivés au bon endroit de l'arborescence pour être trouvés par Emacs.. ensuite, il suffira d'une ligne (require 'mmm-mode) pour que tout soit opérationnel.
À ce niveau, dans votre script html, vous verez vos lignes php surlignées d'une couleur différente, les instructions seront aussi colorisées, etc.. et vous n'aurez plus d'excuse pour générer des erreurs !!!
Plus de renseignements sur le site d'XEmacs.
Bien entendu, si les couleurs ne vous plaisent pas, vous avez tout loisir de les personnaliser, mais là, ça n'a plus rien à voir avec notre sujet, et pourrait faire l'objet d'un autre article.
Visualiser des images
Le mode thumbs permet d'afficher dans un buffer les vignettes des images contenues dans un sous répertoire
Il utilise les fonctionnalités du programme Convert d'ImageMagick (qu'il est donc indispensable d'avoir installé)
Il fonctionne en mode Dired
Installation
- Télécharger le mode thumbs.el ICI
- Copier ce fichier là où se trouvent les autres .el, par exemple :
- /usr/share/emacs/site_lisp/thumbs.el
- /usr/share/emacs/site_lisp/thumbs.el
- Rajouter dans son .emacs :
- (autoload 'thumbs-show-all-from-dir "thumbs" "Preview images in a directory." t)
- (autoload 'thumbs-show-all-from-dir "thumbs" "Preview images in a directory." t)
Fonctionnement
- <key>CTRL h m</key>
- permet d'afficher l'aide
- <key>CTRL t a</key>
- ouvre un buffer contenant toutes les images du sous-répertoire courant
- <key>CTRL t m</key>
- ouvre un buffer contenant les seules images marquées auparavant par la commande m (du mode Dired)
- <key>RETURN</key>
- sur la vignette active ouvre l'image agrandie dans un buffer
Ensuite, à partir de cette image, quelques raccourcis permettent d'effectuer rapidement et simplement des tâches de base :
touche | action | remarque |
---|---|---|
<key>q</key> | thumbs-kill-buffer | |
<key>s</key> | thumbs-save-current-image | |
<key>r</key> | thumbs-resize-interactive | il est alors demandé la largeur et la hauteur en pixel |
<key>e</key> | thumbs-emboss-image | choisir un nombre impair entre 3 et 31 |
<key>></key> | thumbs-rotate-right | |
<key><</key> | thumbs-rotate-left | |
<key>+</key> | thumbs-resize-image-size-up | |
<key>-</key> | thumbs-resize-image-size-down | |
<key>next</key> | thumbs-next-image | |
<key>prior</key> | thumbs-previous-image |
D'autres manipulations sont possibles en utilisant les commandes complètes : (utiliser la complétion M-x thumbs... pour le voir toutes et les lancer)
thumbs-backward-line | thumbs-dired | thumbs-dired-show-all |
thumbs-find-image-at-point-other-window | thumbs-find-thumb | thumbs-forward-line |
thumbs-mark | thumbs-modify-image | thumbs-negate-image |
thumbs-set-image-at-point-to-root-window | thumbs-set-root | thumbs-show-name |
thumbs-delete-images | thumbs-dired-setroot | thumbs-dired-show-marked |
thumbs-find-image-at-point | thumbs-forward-char | thumbs-monochrome-image |
thumbs-show-all-from-dir | thumbs-view-image-mode |
A noter qu'il n'y a pas de raccourci clavier d'origine pour les modes monochrome, et négatif, par exemple, comme e pour emboss.
Pour utiliser l'option modify-image, il est nécessaire de connaître les modifications possibles.. et d'en savoir les paramètres... donc, de connaître les commandes de l'outil Convert d'ImageMagick !
Conclusion
Un mode d'Emacs rapide, facile à mettre en oeuvre, un outil très utile quand Emacs est votre principal environnement de travail. Voir immédiatement les photos (images) contenues dans un sous-répertoire, les redimensionner, ou les retourner, sans avoir à ouvrir une autre application est bien pratique. Par contre, pour effectuer des manipulations précises et poussées sur des images, il est préférable d'utiliser autre chose, Gimp par exemple.
@ Retour à la rubrique Administration système
@ Retour à la rubrique Logiciels
Copyright
Copyright © 12/05/2000, Frédéric Bonnaud
Ce document est publié sous licence Creative Commons Attribution, Partage à l'identique 4.0 : https://creativecommons.org/licenses/by-sa/4.0/ |