Vous etes en train d'utiliser le tutoriel francise d'EMACS. En general, les commandes d'EMACS utilisent les cles et . Dans la suite, nous noterons les commandes prefixees par : ^ lettre (frappe simultanee de la touche Ctrl et de la lettre) : ESC lettre (frappe successive de la touche Esc et de la lettre) En cas d'urgence, vous pouvez toujours quitter EMACS par ^X^C. Ce tutoriel est destine a vous enseigner les bases de EMACS par la pratique. Les caracteres >> en debut de ligne designent les exercices a faire. >> Frapper ^V (passage a l'ecran suivant) A partir de maintenant, vous etes cense taper ^V a chaque fin de page. Vous remarquerez qu'il y a un recouvrement entre deux ecrans successifs. Ceci permet d'avoir une certaine continuite lors du deroulement d'un fichier. La premiere chose a connaitre est la maniere de se deplacer dans un fichier. ^V permet le passage a la page suivante ESC V permet le passage a la page precedente ^L permet le re-affichage de l'ecran (raffraichissement) et le centrage dans l'ecran de la ligne courante. >> Essayez plusieurs fois de suite ESC V et ^V et debrouillez vous pour revenir a cet endroit. >> Passez a la page suivante, pour apprendre la suite. OPERATIONS DE BASE SUR LE CURSEUR --------------------------------- Il y a plusieurs facons de deplacer le curseur dans l'ecran. La methode tradi- tionnelle utilise les commandes : ^F (forward) avance le curseur d'une position ^B (backward) recule le curseur d'une position ^N (next) passe a la ligne suivante, sans changer de colonne ^P (previous) passe a la ligne precedente, sans changer de colonne Ligne precedente (^P) | | Position precedente --- Position courante du curseur --- Position suivante (^B) | (^F) | Ligne suivante (^N) Pour simplifier, nous avons connecte les fleches de deplacement du curseur a ces commandes. >> Amenez le curseur a la fin de cette ligne. Les lignes sont separees par un caractere special Line Feed (LF), appele par UNIX Newline. Ce caractere est automatiquement insere par la frappe de la touche Return. >> Positionnez vous au debut de cette ligne. Remarquez ce que fait le curseur si vous tapez ^B (les lignes sont donc de longueur variable). Lorsque le curseur arrive en haut ou en bas de l'ecran, le texte defile automatiquement. >> Verifiez ceci en remontant le curseur en haut de l'ecran et revenez a cet endroit. Si vous voulez accelerer la progression du curseur, vous pouvez avancer et reculer de mot en mot par les commandes suivantes : ESC F avance le curseur a la fin du mot suivant ESC B recule le curseur au debut du mot precedent >> Essayez ces 2 commandes pour vous positionnez rapidement sur la ligne suivante. Pour aller encore plus vite, les 2 commandes ^A et ^E positionnent le curseur respectivement en debut et fin de ligne. >> Essayez ces 2 commandes pour amener le curseur a la fin de cette ligne. De plus en plus fort, on peut meme deplacer le curseur de phrase en phrase, en utilisant les commandes ESC A et ESC E. >> Essayez ces 2 commandes sur la phrase precedente. N'oubliez pas de revenir ici. Comparez le comportement d'une suite de ^A et d'une suite de ESC A. Compris ? On atteint maintenant la vitesse de la lumiere pour deplacer le curseur en debut ou en fin de fichier. >> Essayez les commandes ESC < et ESC >, sans oublier de revenir ici !! Vous avez surement eu des difficultes a retrouver l'endroit d'ou vous etes partis. Qu'a cela ne tienne. Voila qui va vous eclairer : chaque ligne est numerotee par EMACS. Ce numero n'apparait pas directement mais vous pouvez l'obtenir par la commande ^X ? . EMACS affiche le numero de la ligne dans la derniere ligne de l'ecran qui est la ligne reservee au dialogue. >> Positionnez le curseur au debut de cette ligne. Quel est son numero ? Votre voisin a-t-il le meme numero ? Pour aller directement a une ligne de numero connu, utilisez la commande ^X= >> Pour voir si vous avez bien compris, allez en debut de fichier (vous n'avez pas oublie comment faire, n'est-ce-pas ?) et revenez sur cette ligne. Tant que nous decrivons les deplacements rapides du curseur, signalons la possibilite de prefixer (= mettre avant!) chaque commande par un facteur de repetition: ESC n. >> Positionnez vous au debut de cette ligne. Essayez ESC 10 ^P; puis ESC 12 ^N. Si tout s'est bien passe, le curseur doit etre au debut de cette ligne. Vous n'etes surement pas arrives jusqu'ici sans probleme. Sachez que EMACS "beepe" ('sonne' en francais) lorsqu'il ne comprend pas votre commande. INSERTION et EFFACEMENT de CARACTERES ------------------------------------- Si vous voulez entrer du texte, frappez-le au clavier : les caracteres sont pris par EMACS et inseres a l'endroit ou se situe le curseur. Des que le curseur arrive en colonne 72, EMACS beepe. Si vous continuez a taper sur cette ligne, le caractere \ apparait en colonne 80 signalant que les caracteres suivants font partie de la meme ligne. Pour eviter cette situation, il est preferable de taper Return en fin de chaque ligne d'ecran. >> Positionnez le curseur apres ce texte et tapez du texte au kilometre, c'est-a-dire sans Return. Promenez vous dans ce texte et inserez des Return pour le couper en fin de ligne d'ecran. Course de vitesse (de frappe) : comment entrer 60 fois le caractere * ? On peut bien sur, taper 60 fois, en comptant, sur la touche * : Bon courage. Les petits malins utilisent le facteur de repetition (on a deja vu ca, non ?) et tapent ESC 60 * >> Essayez sur la ligne suivante et vous verrez que ca va vraiment plus vite. Pour effacer les betises que vous avez tapees, vous avez 2 possibilites : ^D efface le caractere sous le curseur Backspace efface le caractere precedant le curseur >> Utilisez ces comendes pour korijer les fote d'aurtogafes de sept ligne. Normalement, vous devez obtenir : >> Utilisez ces commandes pour corriger les fautes d'orthographe de cette ligne. Pour devenir le champion de l'effacement, voila d'autres commandes utiles : ESC D efface la fin du mot sous le curseur ^K efface la fin de la ligne contenant le curseur >> Utilisez HOHO ces commandes HIHI pour rendre cette HAHAHA ligne plus HUHUHU lisible HEHEHEH qu'elle ne l'est NA NA NA NA NA NA. Comme chacun le sait peut-etre (en tous cas, chacun va s'en rendre compte tres vite !), les effacements sont TRES TRES dangereux. Heureusement, EMACS se souvient de TOUTES les commandes que vous avez effectuees depuis la derniere sauvegarde de votre fichier. La commande ^XU vous permet de remonter le temps. >> Essayez cette commande pour retrouver la phrase illisible que vous venez de corriger. Lors d'une suite de commandes ^K, EMACS range le texte efface dans un KILL BUFFER. On peut recuperer ce texte et l'inserer a la position du curseur par la commande ^Y. >> Dupliquez ces 2 lignes en 3 exemplaires, en utilisant des successions de ^K et de ^Y. FICHIERS -------- Pour que le texte edite demeure permanent,vous devez le ranger dans un fichier. Sinon, il s'effacera lorsque vous quitterez EMACS. Pendant l'edition d'un fichier sous EMACS, les diverses modifications que vous faites se font dans un fichier "scratch", copie de votre fichier original. Cependant, ces changements ne deviendront permanents que lorsque vous aurez fait une "sauvegarde" du fichier. De toute facon, EMACS controle si le fichier a ete modifie lorsque vous quittez l'editeur : a ce moment il vous demandera si vous desirez sauvegarder ou perdre les modifications effectuees. Les commandes permettant de sauvegarder un fichier sont : ^X^S sauvegarde du fichier dans le fichier origine ^X^W sauvegarde du fichier dans le fichier dont le nom est donne en reponse a la question affichee. Notez qu'EMACS indique le nom du fichier que vous etes en train d'editer dans une ligne speciale de l'ecran : la ligne mode (en inverse video). --**-Emacs: emacs.eao (Fundamental)---- 57%------------------------ Quel que soit le fichier en cours d'edition, le nom de ce dernier apparaitra toujours a cet emplacement. >> Essayez ces deux commandes. Les commandes de lecture de fichier permettent de chercher des fichiers existants ou d'en creer de nouveaux. Plusieurs cas sont traites par EMACS : ^X^F recherche du fichier dont le nom est donne et rangement de ce fichier dans le buffer qui lui est associe. ^X^R lecture du fichier dont le nom est donne et rangement dans le buffer courant : ATTENTION le contenu du buffer est perdu! ^X^V visualisation d'un fichier, EMACS ouvre une fenetre pour vous permettre de visionner le fichier dont le nom est donne. Pour creer un nouveau fichier, il suffit de l'editer "comme si" il existait deja, puis de commencer a frapper le texte. Lors de la sauvegarde, EMACS creera reellement le fichier qui contiendra le texte, et a partir de la, vous pourrez considerer que vous etes en train d'editer un fichier qui existe deja. BUFFER ------ Nous avons dit qu'a un fichier en cours d'edition etait associe un buffer. Sous EMACS vous pouvez avoir un nombre tres grand de buffers ouverts simultanement. Pour connaitre les buffers ouverts durant votre session frappez la commande ^X^B liste des buffers ouverts ^XB selection d'un buffer : son nom est donne en prompt >> ATTENTION : AVANT DE CONTINUER LISEZ ATTENTIVEMENT LE TEXTE DES DEUX EXERCICES SUIVANTS. >> Utilisez la commande ^X^F pour ouvrir un nouveau fichier de nom toto. Remplissez le avec un peu de texte et sauvegardez le. Verifier a l'aide de ^X^B l'existence de deux buffers ouverts. >> Apres cette breve excursion, revenez a cet endroit du tutoriel en utilisant la commande ^XB, puis ^X1 (cette derniere commande est expliquee par la suite). FENETRES -------- EMACS permet le multi-fenetrage sur votre ecran. La commande ^X2 coupe la fenetre dans laquelle se trouve le curseur en deux fenetres de meme taille. Vous pouvez ensuite associer un fichier a la nouvelle fenetre ainsi creee par les commandes sur les fichiers que vous avez vues precedemment. La commande ^X1 etend la fenetre dans laquelle se trouve le curseur, a tout l'ecran. Le passage d'une fenetre a une autre se fait a l'aide des commandes ^Xo aller a la fenetre suivante >> Essayez ces trois commandes. REGIONS ------- Une region est une portion de texte delimitee par : au debut le curseur a la fin une marque de fin. La commande ^@ positionne la marque de fin a l'endroit du curseur. La commande ^W range la region dans le KILL BUFFER. >> Utilisez ces deux commandes pour echanger les deux phrases suivantes. Notre stock varie en permanence avec l'arrivee quotidienne de nouveaux mate- riels qui concernent toutes les activites professionnelles. Ceux-ci sont visibles sur simple rendez-vous. REMPLACEMENT DE TEXTE --------------------- La commande la plus utilisee pour substituer des chaines de caracteres est la commande interactive de recherche-substitution, qui possede plusieurs options. Elle positionne le curseur sur chaque occurence de la chaine a remplacer et demande confirmation avant le remplacement. ESC % commande interactive de substitution L'affichage des differentes options de cette commande est obtenu par '?'. >> Positionnez le curseur sur la ligne "REMPLACEMENT DE TEXTE". Amenez cette ligne en haut de l'ecran a l'aide d'une suite de commandes ^P. Frappez ESC % A la question "Query replace" repondez "la" A la question "with" repondez "LA" Utilisez les differentes options de fonctionnement de la commande ... En cas de besoin, rappelez vous que la commande ^X^U remonte le temps. RECHERCHE --------- EMACS peut rechercher des chaines de caracteres en avancant ou en reculant dans le texte. Les commandes ^S et ^R sont incrementales, c'est-a-dire que la recherche s'effectue des qu'on commence la frappe de la chaine desiree. ^S demarre une recherche en avant ^R demarre une recherche en arriere Le positionnement sur l'occurence suivante (cas de ^S) ou precedente (cas de ^R) se fait respectivement par ^S ou ^R. L'arret de la recherche se fait par ESC. >> Positionnez le curseur au debut de cette ligne. Tapez ^R pour rechercher la chaine "desiree". Remarquez que, a la frappe du caractere 'd', le curseur se positionne d'abord sur "demarre", y reste a la frappe du caractere 'e' puis se positionne sur "desiree" des qu'on tape le caractere 's'. >> Positionnez le curseur au debut de cette ligne. En combinant une suite de ^S et de ^R, explorez successivement les differentes occurrences du mot "desiree". Remarquez les possibilites d'enchainement de ^S et ^R. MACROS ------ EMACS offre une possibilite luxueuse et gratuite : celle des macros. Ainsi vous pouvez enregistrer une sequence de commandes et lui donner un nom pour pouvoir la rappeler. ^X( demarre l'enregistrement de la sequence ^X) ferme la sequence ^XE execute la sequence enregistree >> A l'aide d'une macro inserez un '$' devant les lignes qui suivent. ligne1 ligne2 ligne3 ligne4 >> Construire une macro qui echange deux phrases consecutives a l'interieur d'un texte (deux phrases sont separees par un point). A L'AIDE !!! ------------ Les possibilites d'EMACS que vous venez d'apprendre sont completees par beaucoup beaucoup beaucoup d'autres commandes. En fait, EMACS peut se programmer tres simplement. Pour connaitre toutes les commandes directement associees a des touches, il suffit de taper ESC ?b. Pour connaitre la commande associee a une touche, utilisez la commande ESC ?k. >> Essayez donc ces commandes. En cas de probleme : n'oubliez pas que vous pouvez quitter EMACS a tout instant par la commande ^X^C. Pour "suspendre" votre session EMACS frappez la commande ^Z, le retour a EMACS se fera par fg. Si vous obtenez des questions bizarres dans la ligne de dialogue vous pouvez toujours annuler une fausse manipulation par ^G. Bonne Chance. Vous avez termine, entrez la commande ^X^C.