Page suivante - Page précédente - Table des matières

3. Les modes d'Emacs

Les modes d'Emacs proposent différentes caractéristiques et possibilités qui peuvent être activée(ou configurée, bien sur) pour être utilisée dans différentes circonstances. Ces modes aident a transformer l'éditeur (Emacs) pour en faire un outil utilisable autant pour écrire une documentation, programmer dans différents langages (C, C++, Perl, Java, et bien d'autres), créer une page Web, envoyer des emails, lire des news, garder une traces des ?appointements??, et même jouer.

Les modes d'Emacs sont simplement des librairies de code Lisp qui étendent, modifient, améliorent Emacs d'une certaine manière.

3.1 Modes majeur vs. modes mineur

Il existe deux types de modes différents disponible: le mode majeur et le mode mineur. La distinction n'est pas facile à voir sans avoir utilisé certains de ces modes, mais tracons en les grands traits.

Seul un mode majeur peut être actif à un instant donné. Les modes majeur sont des modes spécifiques à un langage, ou à une tache, tandis que les modes mineurs sont des petits utilitaires moins spécifique qui peuvent être utilisée avec nombre de taches différentes.

Cela ressemble à un résumé, donc voici un exemple. Il existe un que j'utilise assez souvent lorsque j'écris en format texte brut. Ce mode est appelé text-mode. Ce mode a été crée pour écrire du texte brut comme par exemple un fichier README. Il reconnait les mots et les paragraphes et normalement fait ce que je veux lorsque j'utilise les touches de direction standard

Quand j'écris un texte qui sera utilisé par d'autres personnes, je veux courament qu'il ait un aspect correct. Il doit être correctement cassé, etc... Pour activer le cassage du texte, je met en place le mode mineur auto-fill Ce mode essaye de faire les bons choix quand je tape et que je valide à la fin d'une ligne. Le fait est qu'étant donné que c'est un mode mineur, on peut l'utiliser avec beaucoup de mode majeur différents. Mes notions de bon choix à effectuer quand j'atteind la fin d'une ligne sont différentes que je soit dans le cas où je suis en mode texte text-mode du cas où je suis en java java-mode par exemple.Je ne veux pas que mon code java soit cassé comme un texte anglais. Mais je veux que les commentaires de mon code Java soit cassé. Le mode autofill est assez bon pour deviner quoi faire.

Les auteurs des différents mode d'emacs ont fait du bon travail en implémentant les caractéristiques mineures devant être dans des modes mineurs dans ces mêmes modes mineurs!

Si vous regardez la composition d'un écran d'Emacs, vous remarquerez que le mode ligne identifie le mode dans lequel se situe Emacs. Dans ce cas c'est le mode qui se nomme Lisp Interaction, c'est à dire le mode par défault. Il est réelement utile seulement lors de la frappe de code Lisp. (Mais puisque Emacs est écris en Lisp, pourquoi pas ?)

3.2 Les Modes de Programmations

D'abord et avant tout, Emacs a été concu par des programmeurs, pour des programmeurs (NdT: et des traducteurs...). Il existe des modes de trés grande qualité disponible pour chaqu'un des langages de programmation auquel vous pouvez pensez (et même d'autres moins populaires). Je ne peux que décrire brievement quelqu'uns d'entre eux ici. La plupart des modes de programmations partagent certaines caractéristiques. Communément, Il font la plupart des choses suivantes:

  • Procure le surlignement par la couleur pour le langage.
  • Procure une identation automatique et le formattage du code pour le langage.
  • procure une aide contextuelle (langage) sensitive.
  • Une interface automatique avec votre debogger.
  • Ajoute un menu spécifique à votre langage sur la barre de menu.

En plus, il existe des modes non spécifiques à un langage qui aide à la réalisation de tâches commune à plusieurs langages. Ces tâches sont par exemple l'interfacage avec un contrôleur de version (RCS,CVS) , l'ajout automatique de commentaires, la création de makefile, la mise à jour des fichiers de changement(ChangeLog), etc...

Quand vous ajouter tout ces modes ensembles, et considérer la maturité et la stabilité du code d'Emacs, vous pouvez le comparer d'une manière plaisante à des applications IDE(Intergrated Developpement Environnement) pour des langages comme C++ et Java. Et, en plus, il est gratuit/libre.

C/C++/Java

A cause de leur syntaxte, le C, le C++ et le java sont assez simiaires, il existe donc un seul mode majeur pour gérer les trois langages (comme l'objective-C et l'IDL). C'est un package trés mature et complet et il est inclu dans la distribution d'Emacs. Ce mode est nommé cc-mode ou CC Mode

Pour plus de détails, ou pour télécharger une nouvelle version, aller à http://www.python.org/emacs/.

Perl

Il existe véritablement deux modes pour éditer du code Perl dans Emacs. Le premier est nommé perl-mode (comme vous pouviez l'éspèrer, et le second se nomme cperl-mode. Je n'ai pas de bonnes raisons pour lesquelles il existe deux modes (la documentation ne le dit pas, mais il semblerais que perl-mode soit le mode original pour éditer du code Perl dans Emacs. il semble avoir moins de possibilitées que cperl-mode et la reconnaisance de certaines possibilitées étranges du langage manque.

Personnalement, j'utilise et je recommande cperl-mode qui semble être mieux maintenu et possèdent toutes les caractéristiques que je demande. Vous pouvez trouver la dernière version ici: ftp://ftp.math.ohio-state.edu/pub/users/ilya/emacs.

Mais ne prenez pas mes mots comme paroles d'évangiles: essayez les deux et prenez celui qui vous convient le mieux.

Python

Python(un autre langage de script trés populaire possède aussi un mode Emacs. Pour autant que je puisse dire, il n'est pas distribué avec GNU Emacs, mais est distribué avec XEmacs. Il fonctionne malgré tout assez bien avec les deux éditeurs.

Vous pouvez obtenir le python-mode à partir du site web officiel de Python http://www.python.org/emacs/python-mode/.

Les autres

Il existe beaucoup d'autres modes d'éditions disponibles pour aider les programmeurs. De tel mode vous aideront à executer des tâches comme :

  • Shell Scripts (Bash, sh, ksh, csh, ...)
  • Awk, Sed, Tcl, ...
  • Makefiles
  • Change Logs
  • Documentation
  • Deboggage

Et bien plus. Voyez la dernière section de ce document pour plus d'informations pour trouver d'autres modes et des ajouts.

3.3 Authoring

Les modes d'Emacs ne sont pas limité aux seuls développeurs. Les personnes écrivant de la documentation peuvent bénéficier d'un vaste ensemble de modes Emacs.

Correction Orthographique (mode ispell)

Les auteurs de beaucoup de type de document on toujours besoin de correction orthographique. Si vous avez GNU ispell , vous pouvez taper M-x ispell et corriger le buffer courant. Si ispell trouve des mots qu'il ne connait pas, it affichera la liste des remplacements possible et vous laissera en choisir un (ou aucun) de ceux-ci. Il est équivalent à bien des outils de correction orthographique de logiciel non-libre.

HTML (mode html-helper)

Si vous vous retrouver à écrire des fichiers en HTML une fois (et même beaucoup) vous voudrez peut-être tester html-helper-mode. Il est disponible à l'adresse http://www.santafe.edu/~nelson/tools/ avec une documentation.

Comme son nom le suggère, html-helper-mode offre beaucoup de fonctions pour aider ceux qui écrivent du code HTML à la main, à l'ancienne mode.

TeX (tex-mode)

Lorsque vous écrivez des documents en TeX, il est souvent utile d'obtenir Emacs certains surlignage ou coloration pour les /, les accolades, et d'autres caractères. tex-mode s'occupera de cela pour vous.

Bien que je n'écrivent plus en TeX directement maintenant, lorsque je le faisais ce mode a été assez utile en transformant mon source Tex en un source un peu plus lisible.

SGML (sgml-mode)

Le document que vous êtes en train de lire a été écris en SGML (et probablement converti vers le format dans lesquel vous êtes en train de lire). sgml-mode procure toute les bases pour un document SGML: validation, surlignage, étiquetage avant/arrière, et bien d'autre choses. C'est une des parties standard d'Emacs.

3.4 Autres Modes

Bien sur, il existe des tas d'autres modes pratique pour rendre la vie facile. Voici juste un panel des plus populaire.

Le Contrôle de Version (mode vc)

Le mode vc s'interface avec les plus populaires contrôleurs de version(RCS, SCCS, CVS) pour simplifier le contrôle des fichiers, contrôler les release, etc... C'est un mode standard d'Emacs, documenté dans la doc d'Emacs.

Le Mode Shell

Pourquoi passer vers une autre fenêtre X, ou une console virtuelle, juste pour lancer quelques commandes? Faites le a partir d'Emacs, et garder vous des problèmes. :-)

M-x shell lancera un shell à l'interieur d'un buffer Emacs. Vous pourrez effectuer la plupart des tâches que vous effectuer sur un shell classique (a par des programmes tournant en plein écran tel que vi ou pine car Emacs dialogue avec votre shell réel dernière vous...

Cela fait aussi partie des standard d'Emacs, donc vous pourrez le trouver documenté dans la doc d'Emacs.

Telnet et FTP

Pourquoi passer vers une autre fenêtre ou une console virtuelle juste pour lancer telnet ou ftp? Faites le avec Emacs, et gagner du temps. (Vous avez remarqué la ressemblance ?)

Comme vous pouvez lancer un shell avec Emacs, vous pouvez aussi lancer telnet et ftp. Essayez M-x telnet ou M-x ftp pour en faire l'experience. voyez la documentation pour tous les détails.

Pages Man

Pourquoi passer vers une autre fenêtre ou une console virtuelle juste pour lire une page man? Faites le avec Emacs, et gagner du temps. (Promis, c'est fini.)

Comme vous pouvez lancer un shell avec Emacs, vous pouvez aussi lire les pages de manuel. Essayez M-x man pour en faire l'experience. voyez la documentation pour tous les détails.

Ange-FTP

Pour citer la documentation d'ange-ftp

Ce package tente de rendre accessible des fichiers et des répertoires en utilisant FTP à l'intérieur d'Emacs aussi transparent que possible. Un sous ensemble du système de gestion de fichier a été étendu pour utiliser FTP.

Cela signifie que vous pouvez traiter des fichiers de machines distantes comme si elle étaient situé sur votre ordinateur. Donc si vous devez éditer un fichier sur différents ordinateurs, demander à Emacs de l'ouvrir (en utilisant une syntaxte différente pour le chemin) et vous occuper des détails de connection et de récuperer le fichier. Vous pourrez alors sauver le fichier via C-x C-s, et ange-ftp interceptera la sauvegarde et écrira le fichier sur la machine distante.

La syntaxte différente pour le chemin se présente ainsi. Un fichier nommé "monfichier", dans un répertoire "utilisateur", sur une machine nommée :"ma.machine.org" peut-être obtenu en ouvrant le fichier (C-x f)

/utilisateur@ma.machine.org:~utilisateur/monfichier

Etant un package standard de la distribution, vous pouvez aussi consulter la documentation pour tous les détails.

Merci à Etienne Grossmann ( etienne@anonimo.isr.ist.utl.pt) pour l'exemple ci-dessus.


Page suivante - Page précédente - Table des matières