1 Emacs comme éditeur de texte
Transcription
1 Emacs comme éditeur de texte
Université de Nice-Sophia Antipolis Licence Mathématiques-Informatique Semestre 2 Semaine du 12 mars 2007 Systèmes Informatiques Mémento pour la séance n◦ 7 1 Emacs comme éditeur de texte décor barre de menus barre de boutons fenetre contenu du tampon curseur fenetre contenu du tampon ligne de mode contenu du tampon cadres ligne de mode zone d’écho F IG . 1 – Une session d’Emacs Caractéristiques associées à un tampon : – nom du tampon, en général déduit du nom du fichier ; – fichier associé ; – répertoire courant ; – mode majeur ; – modes mineurs ; – mode de saisie ; – mode de codage ; 2 – position du curseur ; – position des marques. Commandes de recherche : Sens En Avant En arrière Directe Chaîne Expr. Rég. C-s RET C-r RET C-M-s RET C-M-r RET Incrémentale Chaîne Expr. Rég. C-s C-r C-M-s C-M-r La recherche tient ou compte ou non de la différence entre minuscules et majuscules, suivant la valeur de l’option « Case-insensitive Search » : si elle est en fonction, elle n’en tient pas compte. En recherche incrémentale, C-w augmente la chaîne cherchée de la fin du mot courant. Rectangles : seules comptent les coordonnées du début et de la fin de la région. – C-x r k : tuer le rectangle courant ; – C-x r y : récupérer le dernier rectangle tué ; – C-x r o : ouvrir un rectangle en décalant le texte à droite ; – C-x r c : remplacer le rectangle par des blancs ; – C-x r r : copier le rectangle dans un registre ; – C-x r t : remplacer chaque ligne du rectangle par une chaîne ; si le rectangle est de largeur nulle, cela ajoute la chaîne à cet endroit dans chaque ligne du rectangle. Registres : variables internes dont le nom est un caractère, pouvant contenir une chaîne ou une position. – C-x r s : copier la région dans un registre ; – C-x r i : insérer le contenu d’un registre ici ; – C-x r SPC : garder la position du point dans un registre ; – C-x r f : copier la configuration de fenêtres et de cadres dans un registre ; – C-x r j : amener le point à l’emplacement conservé dans un registre (ou restaurer la configuration). Dessins : la fenêtre est un quart de plan en mode remplacement. On entre dans le sous-mode par M-x picture-mode et on en sort par C-c C-c. Les caractères tapés remplacent ceux qui sont dans leur position d’écriture, et la direction courante détermine comment le point se déplace après chaque caractère ; le changement de direction est déterminé par la commande C-c suivi d’un caractère de direction comme ci-dessous : ‘ ^ ’ \|/ <- -> /|\ / . \ Par exemple, C-c \ M-10 \ permet de barrer les 10 prochaines lignes. Les autres commandes sont : – C-c C-k : tuer le rectangle courant ; – C-c C-w R : copier le rectangle courant dans un registre et le tuer ; – C-c C-y : récupérer le dernier rectangle tué ; – C-c C-c R : récupérer le rectangle contenu dans un registre. 2 Emacs comme environnement de bureau Marques du codage MIME : -- [[type/sous-type;paramètres facultatifs][codage]] 3 – le type peut être text, image, voice, application, external, etc. – le sous-type dépend du type ; pour text on peut trouver plain ou enriched. – les paramètres facultatifs dépendent du type et du sous-type ; pour le type text c’est l’alphabet utilisé. – le codage peut être 7bit, 8bit, binary, base64, quoted-printable, etc. La marque initiale est -- [[text/plain;charset=ISO-8859-1][7bit]] Commandes du codage MIME : – C-c C-m C-i : insérer un fichier ; le suffixe du fichier détermine en partie les caractéristiques, les autres sont demandées. – C-c C-m C-g : insérer un lien externe, référence à un fichier accessible par FTP anonyme ; l’accès sera fait automatiquement à la lecture du message. – C-c C-y : insérer le message courant, c’est-à-dire celui auquel on répond. – C-c C-i : insérer un message pris dans un classeur quelconque. – C-c C-m m : voir le message tel qu’il sera envoyé. – C-c C-q : renoncer à ce message. Commandes à la réception du codage MIME : – K TAB passer au prochain champ ; – K S-TAB passer au champ précédent ; – K v voir le champ courant ; – K i voir la représentation interne du champ courant ; – K o sauvegarder dans un fichier le champ courant ; – K a sauvegarder tous les champs dans des fichiers. On peut aussi passer dans la fenêtre du message (C-x o) puis utiliser les commandes précédentes sans le K initial. La commande q sort de la fenêtre du message. Calendrier et agenda : M-x calendar ouvre une petite fenêtre dans le bas du cadre courant pour y placer le calendrier du mois courant et des deux mois encadrants. Si l’on utilise l’agenda, il apparaît dans la fenêtre du haut (en entier ou partiellement). Voir une partie des nombreuses commandes dans le mémento pour Emacs, ou taper ? pour obtenir le manuel. Calculateur : il est appelé par la commande M-x calculator. Il n’a besoin que d’une fenêtre de deux lignes, où on saisit les expressions à evaluer sous la forme ordinaire, avec parenthèses. Voici quelques opérateurs ou commandes : + - * / opérateurs binaires ordinaires \ % division et reste entiers ^ élévation à une puissance Q ! racine carrée et factorielle S C T sinus, cosinus et tangente D B O H saisie et affichage en décimal, binaire, octal ou hexadécimal q sortie du mode, disparition de la fenêtre 3 Emacs comme environnement de programmation Informations définies par un mode : – modèles pour l’affichage enjolivé, sous forme d’expressions régulières ; – tables syntaxiques, répartissant les caractères en différentes catégories : – caractères de mots ; – délimiteurs de commentaires ; – ensembles de parenthèses se correspondant ; – blancs ; – etc. 4 – – – – abréviations propres au mode ; règles de présentation des programmes ; commandes spécialisées ; etc. Détermination du mode : – explicitement par la commande M-x langage-mode ; – implicitement par le suffixe du nom de fichier ; – automatiquement par la première ligne du fichier : signe de commentaire du langage -*- langage -*- Par exemple pour Emacs-Lisp : ; -*- Emacs-Lisp -*- Compilation ou recherche : – M-x compile exécute une commande quelconque dans une nouvelle fenêtre en mode de compilation. – M-x grep exécute une commande grep et affiche les résultats dans une nouvelle fenêtre. – M-x grep-find fait la même chose en parcourant les répertoires à l’aide de find. Dans les trois cas, les deux commandes suivantes peuvent être utilisées : – C-x ‘ (M-x next-error) amène dans la fenêtre courante le fichier concerné par le prochain message d’erreur (si on a utilisé compile) ou la prochaine chaîne trouvée (dans les deux autres cas), le curseur étant sur la ligne concernée. – RET dans la fenêtre produite par la commande amène le fichier concerné dans une autre fenêtre. Shell ou Telnet : les deux commandes ouvrent une fenêtre dans un mode du même nom, avec des commandes spécifiques : – M-p ou M-n progressent dans l’historique des commandes déjà tapées. – Les commandes qui envoient un signal doivent être préfixées par C-c, par exemple C-c C-c pour tuer le processus interactif courant. – C-c C-r place le point au début des derniers résultats (ce qui a été affiché depuis la dernière commande). – C-c C-o efface les derniers résultats. Ediff : appel par M-x ediff ; les deux fichiers comparés sont identifiés A et B. Rendre active la très petite fenêtre qui s’ouvre et reçoit les commandes : – ? : élargit la fenêtre de commande pour afficher la liste des commandes disponibles. – n ou SPC passe à la différence suivante. – p ou DEL passe à la différence précédente. – a (ou b) copie la différence courante de A (ou B) vers B (ou A). – z suspend l’exécution de Ediff. – q termine l’exécution de Ediff. 4 Personnalisations immédiates Abréviations : Une chaîne de caractères, l’abréviation, est remplacée automatiquement par son extension au moment de la frappe. Il faut être dans le mode mineur Abbrev grâce à la commande M-x abbrev-mode. La table globale est valable quel que soit le mode, la table locale est liée au mode majeur courant. L’abréviation est un mot, et commence et se termine à un séparateur de mot. Autres commandes : – M-’ : l’abréviation commence au point. – C-x a e : l’abréviation se termine au point. 5 – C-x a g : le mot qui précède est une extension globale, son abréviation est demandée dans le mini-tampon. – C-x a l : même chose pour une extension locale. – C-x a i g : le mot qui précède est une abréviation globale, son extension est demandée dans le mini-tampon. – C-x a i l : même chose pour une abréviation locale. – M-x list-abbrevs : lister toutes les abréviations dans un nouveau tampon ; on peut le modifier directement, et mettre les abréviations en vigueur par C-c C-c. Extension dynamique : la commande M-/ cherche à compléter le mot qui précède à l’aide d’un mot de même préfixe trouvé auparavant dans le tampon courant. En répétant cette commande sur place, on remonte dans le tampon à la recherche d’autres extensions possibles, puis dans la suite du tampon, puis dans les autres tampons existants. La commande M-C-/ se limite normalement au tampon courant, et affiche dans l’autre fenêtre l’ensemble des extensions possibles. Macros : Une macro est une suite de commandes d’Emacs (commandes abrégées, commandes textuelles, utilisation de menus ou même caractères ordinaires), qu’on conserve pour la ré-utiliser telle quelle. – C-x ( : commence la définition ; toutes les commandes qui suivent sont à la fois exécutées immédiatement et ajoutées à la définition. – C-x ) : termine la définition. – C-g : abandonne la définition ; c’est aussi ce que fait l’apparition d’une erreur. – C-x e : exécute la dernière macro définie ; on peut précéder cette commande de M-0, qui l’exécute indéfiniment jusqu’à l’apparition d’une erreur. – M-x name-last-keyboard-macro : donne un nom à la dernière macro, qui peut alors être utilisée comme une commande textuelle. – C-x k : modifie la dernière macro. – C-x q : met dans la macro une interrogation de l’utilisateur. Options de fonctionnement : Elles sont accessibles par le menu Options1 . Cela permet de changer l’état de onze bascules : – Global font lock mode : mécanisme d’affichage avec présentations et couleurs spéciales des différents composants des tampons, suivant le mode courant. – Transient mark mode : affiche de manière visible la sélection courante. – Show Paren mode : quand le curseur est sur une parenthèse, la parenthèse symétrique est mise en évidence ; la discordance de parenthèse est notée aussi. – Line Truncation : les lignes trop longues sont tronquées plutôt que repliées à l’affichage. – Auto fill : coupure automatique entre deux mots des lignes trop longues, en cours de frappe. La colonne au-delà de laquelle ce mécanisme entre en jeu est fixée par la commande C-x f. – Case-insensitive search : dans les recherches (et les remplacements), majuscules et minuscules sont confondues. – Use Directory names in buffer names : construire les noms des tampons en y incluant les noms de répertoires. – Save place in files between sessions : permet de se retrouver dans un fichier au point où l’on était à la fin de la session précédente. – Automatic file (de)compression : permet de travailler sur les fichiers comprimés sans demander explicitement la décompression et la compression. – Debug on error : permet d’obtenir une trace d’exécution en cas d’erreur de manipulation ou d’erreur de fonctionnement. – Debug on Quit : même chose au moment où l’on termine Emacs. 1 Rappelons que si la souris n’est guère ou pas utilisable, la commande M-‘ (M-x tmm-menubar) permet d’accèder aux menus avec toutes leurs possibilités. 6 Internationalisation : Les caractères sont codés de manière interne sur deux octets, pour pouvoir représenter simultanément la plupart des alphabets répandus. – Codage : C’est la manière de représenter les caractères dans les fichiers, soit par l’utilisation d’une des normes de l’ISO, soit par des normes plus spécialisées. Emacs reconnaît en général automatiquement le code utilisé, et le signale dans les premiers caractères de la ligne de mode. Le caractère 1 indique le codage ISO-8859-1, convenant au français et à la plupart des langues européennes. – Affichage : déterminé par les polices disponibles sur le serveur X ou sur le terminal. Un caractère non affichable est représenté par son code octal précédé du caractère \. – Saisie : permet d’utiliser des combinaisons de touches du clavier pour coder des caractères qui n’ont pas de touche affectée. Le mode de saisie French-Postfix est repéré par le code FR< dans la ligne de mode. On saisit le caractère accentué en saisissant la lettre puis l’accent. Si l’on double l’accent, il apparaît tel quel. – Modifications par commandes abrégées (voir le sous-menu Mule du menu Options) : – C-\ : active ou désactive la méthode de saisie par défaut. – C-x C-m C-\ : change de méthode de saisie. – C-h I : décrit la méthode de saisie actuelle. – C-h C : décrit la méthode de codage actuelle. – C-h h : donne des exemples des principaux alphabets affichables. 5 Utilisation des mécanismes de personnalisation Principes : Affectation de valeurs à des options, qui sont des variables internes à Emacs. Une option peut avoir une valeur booléenne, entière, un symbole, une valeur d’un type énuméré, une chaîne de caractères, une liste de valeurs, une fonction, etc. Toutes ont une valeur initiale déterminée à la construction d’Emacs, puis modifiée à l’appel d’Emacs, par le fichier de configuration local : /usr/local/share/emacs/version/site-lisp/site-start.el puis par le fichier de configuration personnel ~/.emacs. Vous trouverez le numéro de version de votre éditeur favori dans le menu d’aide, ou par la commande M-x emacs-version. Mécanismes : Accès par le menu Options, sous-menu Customize Emacs.