Emacs (suite)

Des questions vous seront posées tout au long de cette page. Vous devez y répondre pour pouvoir accéder à la seconde étape.



Pour commencer assurez vous d'être dans le répertoire $HOME/cours_c

Lancez emacs en tapant emacs. Si vous n´avez pas défini la variable d´environnement DISPLAY(1), l´éditeur se lancera sans votre fenêtre shell. Sinon si la variable DISPLAY est bien positionnée (2), l´affichage se fera dans une autre fenêtre qui aura à peu près l´aspect suivant :


L´écran est divisé en quatre parties :

La barre de menu permet d'avoir accès aux principales commandes d´emacs,
La zone d´édition, où se trouvent les nuages, contient le texte à éditer,
La barre d´état indique, entre autres, le fichier édité,
La ligne de commande affiche les séquences de commande tapées par l´utilisateur.


Descriptif de la barre de menu




La barre de menu permet, d´éditer, sauvegarder, charger des fichiers.



Le premier menu Buffers visualise tous les tampons ouverts par Emacs. En terminologie Emacs un tampon ou buffer est une zone mémoire dans laquelle peut être rangé un fichier. Emacs ne travaille donc pas directement sur un fichier mais dans le tampon dans lequel il est stocké.

Au lancement d'Emacs ce menu ne contient que deux entrées. *scratch* est un tampon ouvert par défaut dans lequel vous pouvez taper du texte, mais quand vous le sauvegarderez, vous serez obligé de préciser un nom. Le nom *scratch* apparaît aussi dans la barre d´état, il s´agit donc du fichier en cours d´édition.

La seconde ligne du menu : List All Buffers correspond à une commande visualisant dans une fenêtre d´Emacs tous les tampons créés (cela correspond à peu près au menu qui est affiché). Les lettres entre parenthèses (c-x c-b) indiquent que cette commande Emacs peut être directement tapée au clavier. c- indique que l´on doit appuyer, en même temps, sur la touche contrôle et le caractère qui suit le -.

La seconde entrée du menu permet d´accéder aux commandes d'édition d´Emacs. Il n'est pas nécessaire de toutes lwa connaître pour s'en servir. En fait seulement une dizaine sont vraiment importantes :

Open File... ou contrôle-x contrôle-f (f pour file) permet de charger un fichier. Sur la ligne de commande Emacs demande le nom du fichier. Un chemin complet apparaît. Vous pouvez le modifier s´il ne vous convient pas.Si le nom donné ne correspond pas à un fichier, Emacs affichera dans la ligne de commande (new file) et donnera ce nom à un nouveau tampon.Le fichier portant ce nom ne sera réellement créé qu'au moment de la sauvegarde.

Save buffer ou c-x c-s (s pour save) permet de sauvegarder le tampon dans un fichier. Dans cet exemple, l´option est grisée et par conséquent non sélectionnable car le tampon n´a pas de fichier associé. Si vous tapez la séquence c-x c-s, Emacs vous demandera un nom de fichier.

Save buffer as .. ou c-x c-w (w pour write) permet de sauvegarder le tampon sous un nom qui sera précisé dans la ligne de commande.

Quit emacs ou c-x c-c permet de quitter emacs. Si des tampons ont été modifiés, mais pas sauvegardés, Emacs demandera avant de partir s´ils doivent être sauvegardés.



1er exercice


Créez un fichier d'une ligne qui contient le mot «chat». Appelez-le fichier.

Le troisième menu permet d´accéder aux commandes d´édition (couper, coller, recherche, remplacement, ...).

Undo ou controle-shift-- permet d´annuler les modifications apportées au texte depuis son chargement. Undo garde en mémoire toutes les modifications. Il est donc possible de revenir au texte initial.

Cut permet de couper un texte qui a été au préalable sélectionné. Pour sélectionner une partie du texte : placer la souris au début du texte et, en maintenant le bouton gauche enfoncé, la déplacer. Le texte sélectionné apparaît sur un fond grisé. Quand le bouton est relaché le grisé disparaît mais le texte reste sélectionné.
Manuellement la manipulation est plus compliquée. Il faut déplacer le curseur sur le début du texte à sélectionner, taper c-x space, aller en fin de zone et taper c-w.
c-k (k pour kill) permet de couper de la position du curseur à la fin de la ligne. La ligne n'est pas effacée. Pour l'effacer, il faut faire un second c-k.

Copy a le même comportement que le Cut, mais le texte n'est pas retiré du tampon.

Paste permet de placer, à l´emplacement du curseur, le texte qui avait été mis dans le tampon temporaire au moment du Cut ou du Copy.
Manuellement, ceci peut être fait en tapant c-y (y pour yank retirer en anglais).

search permet de retrouver dans le texte qui suit le curseur une séquence de texte qui est fournie dans la ligne de commande.
Manuellement, ceci peut être fait en tapant c-s (s pour search). Si l´on est déjà en mode recherche, cette commande permet de rechercher une autre occurence. En mode recherche, une seconde frappe sur c-s permet de faire une recherche en reprenant la précédente occurence comme critère.
c-L permet d´arrêter la recherche.

search backwards ou c-r permet de faire une recherche en arrière, c´est-à-dire de l´emplacement du curseur vers le début du texte. Le comportement est le même que c-s.

Query Remplace ou M-% (M-x se lit «Maita ikse», il faut appuyer en même temps sur la touche losange noir du clavier du sun et la lettre ou ESC suivi de la lettre). Dans la ligne de commande : taper la séquence à remplacer return suivie de la nouvelle séquence. A chaque remplacement, Emacs demande s´il doit faire le remplacement : n indique que non, espace ou y que le remplacement doit être effectué.
M-r permet un remplacement dans tout le texte sans contrôle de l´utilisateur.

Le dernier menu contient une aide et une documentation en ligne (en anglais) pour mieux apprendre Emacs. Nous vous conseillons de suivre le tutorial sur Emacs.


Zone d´édition


Le chapitre précédent a déjà présenté des commandes ayant un rapport avec cette zone. Nous allons plutôt présenter les commandes de déplacement du curseur.

Avec la souris on peut placer le curseur à n´importe quel endroit de la fenêtre. Il suffit de mettre le curseur de la souris sur la lettre et de cliquer avec le bouton de gauche.
Pour accéder à une zone de texte non visible à l´écran, on peut utiliser l´ascenseur qui se trouve à droite. Le bouton de gauche fait monter le texte, le bouton de droite le fait descendre et le bouton du milieu place la barre de l´ascenseur à l´endroit indiqué.

Avec le clavier, les flèches, page up, page down, home, end, ... fonctionnent correctement. Mais on peut utiliser des commandes plus barbares :

c-P monte d´une ligne
c-N descend d´une ligne
c-b va à gauche
c-f va à droite
c-V descend d´une page
M-P remonte d´une page
La fenêtre peut être coupée en deux, soit pour afficher deux parties d´un même tampon, soit pour afficher deux tampons différents.

c-X 2 coupe la fenêtre en deux
c-X 1 agrandit la fenêtre du curseur
c-X 0 efface la fenêtre du curseur. Ceci ne détruit évidemment pas le tampon
c-X o passe d´une fenêtre à l'autre
c-X b affiche la fenêtre précédemment effacée.


2ième exercice



Cliquer ici pour mettre le fichier IEEE_802.3.Z dans votre répertoire de travail (~/cours_c).
Décompressez le fichier uncompress IEEE_802.3.Z et éditez-le avec Emacs.
Changez toutes les occurences (majuscules, minuscules) de Ethernet en Token Ring.
Mettez le 3ième paragraphe (Ce système inspira R. Metcalfe et D. Boggs...3 Mbits/s.) à la fin du document.
Supprimez les trois premières lignes du paragraphe Les bâtiments du campus étaient....
Sauvegardez le résultat dans nouveau.txt. Le texte de l'ancien fichier ne doit pas être modifié.


La barre d´état


Cette barre permet de connaître l´état du fichier. Si elle commence par :

------le tampon n´a pas été modifié.
--**--le tampon a été modifié.
--%%--le tampon ne peut pas être modifié.

On trouve ensuite le nom du tampon, généralement le nom du fichier édité.

Entre parenthèses se trouve le mode d´affichage. Si vous éditez un fichier C, Emacs passe automatiquement en mode C, ce qui permet d´avoir des facilités comme l´indentation automatique. Ensuite on trouve l´emplacement de la fenêtre dans le tampon (en % ou bot (fin du tampon), top (début du tampon), all (le tampon tient dans la fenêtre)).

Q.C.M.


                        		                        Vrai  Faux
 1. M-x signifie qu'il faut taper Esc puis x                       
 2. Pour remplacer une chaîne de caractères on tape c-r            
 3. Pour sortir d'Emacs on tape C-x C-q                            
 4. c-P équivant à la flêche vers le haut                          
 5. c-Q permet d'insérer un caractère spécial (caractère de 
    contrôle) dans le texte                                        
 6. Pour se servir d'Emacs par minitel la variable 
    d'environnement DISPLAY doit contenir :0.0                     




note 1 : pour vérifier, taper setenv ou echo $DISPLAY
note 2 : variable DISPLAY contient Nom_de_votre_station:0.0. Par exemple brigitte:0.0
Compilateur

Menu Principal