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.
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 ?)
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:
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.
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/.
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(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/.
Il existe beaucoup d'autres modes d'éditions disponibles pour aider les programmeurs. De tel mode vous aideront à executer des tâches comme :
Et bien plus. Voyez la dernière section de ce document pour plus d'informations pour trouver d'autres modes et des ajouts.
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.
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-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-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-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.
Bien sur, il existe des tas d'autres modes pratique pour rendre la vie facile. Voici juste un panel des plus populaire.
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.
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.
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.
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.
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.