vi
ou d'un �diteur
similaire. La derni�re version de ce document est aussi disponible sur
http://www.wcnet.org/jzawodn/emacs/
Copyright © 1998 - 1999 Jeremy D. Zawodny. La licence d'exploitation du document est sous licence g�n�rale GNU publique. Une version en ligne est disponible ici: http://www.gnu.org/copyleft/gpl.html
Ce document est destin� aux utilisateurs de Linux int�ress�s d'apprendre � utiliser Emacs et � le mettre en oeuvre. Ce document commen�a comme l'illustration d'un bref tutorial que j'ai �t� donn� de pr�senter aux rencontres des utilisateurs de Linux de Tol�de http://www.talug.org/. Il a quelque peu grossi depuis, suite aux retours que j'ai eu gr�ce aux membres de la communaut�. Voyez la section remerciement pour les d�tails.
Dans ce document, rien n'est sp�cifique � Linux. Il s'applique � toutes les versions d'Emacs, m�me celle fonctionnant sous Microsoft Windows. Mais �tant donn� que ce document fait parti du projet de documentation Linux, je pr�cise le fait qu'il a �t� d�velopp� pour les utilisateurs de Linux, car c'est pour eux qu'il a �t� �crit.
Enfin, pour ceux d'entre vous qui pr�f�re le nom GNU/Linux au simple Linux, (allez lire http://www.gnu.org/gnu/linux-and-gnu.html pour voir de quoi il retourne) vous �tes les bienvenus � substituer mentalement GNU/Linux pour toutes les occurences de Linux dans ce document. Bien que je ne d�saprouve pas le raisonnement et l'esprit contenu derri�re cette id�e, je ne me sens pas forc� d'�crire GNU/Linux.
Emacs poss�de diff�rentes utilit�es suivant les personnes qui l'utilisent. Suivant la personne � qui vous posez la question, vous pourrez obtenir l'une des r�ponses suivantes:
Mais pour notre d�monstration, pr�tendons seulement qu'il s'agit d'un �diteur de texte, un �diteur de texte �tonnamment flexible. Nous approfondirons la question un peu plus tard. Emacs a �t� �crit par Richard Stallman (fondateur de la Free Software Fondation : http://www.fsf.org/ et du projet GNU http://www.gnu.org/) et qui le maintient encore aujourd'hui.
Emacs est l'un des outils d'�ditions de textes les plus populaires utilis�s sur Linux (et Unix). C'est le second en popularit� apr�s vi. Il est aussi connu pour ses incommensurables possibilit�es, sa capacit� � �tre customiz�, et son manque de bug (son absence de bug)! Ses larges possibilit�es et sa capacit� � �tre r�ellement configur� sont le r�sultat de la conception et de l'impl�mentation d'Emacs. Sans aller dans les d�tails, nous dirons qu'Emacs n'est simplement pas juste un �diteur. C'est un �diteur �crit principalement en Lisp. Dans le noyau d'Emacs il y a un interpr�teur contenant toutes les subtilit�es de Lisp �cris en C. Seulement les parties les plus basiques et les pi�ces de bas-niveau d'Emacs sont �crites en C. La majorit� de l'�diteur est en r�alit� �crit en Lisp. Donc, dans un sens, Emacs poss�de un langage de programmation entier incorpor�, que vous pouvez utilisez pour customizer, pour �tendre, et pour changer son comportement.
Emacs est aussi l'un des plus vieux �diteurs. Le fait est qu'il a �t� utilis� par des milliers de programmeurs durant les 20 derni�res ann�es signifie qu'il existe �norm�ment de modules externes. Ces modules vous permettent de faire avec Emacs ce que Stallman n'a probablement jamais r�v� �tre possible de faire lorsqu'il a commenc� � travailler sur Emacs. Nous parlerons de cela dans une prochaine section.
Il y a beaucoup d'autre sites Web et de documents qui donnent un meilleur apercu d'Emacs, de son histoire, et des sujets associ�s. Plutot que de tenter de reproduire tout cela ici, je sugg�re que vous voyez par vous m�me quelques endroits list�s dans la section Autres Ressources de ce document.
Cela vaut la peine de d'indiquer qu'il existe aujourd'hui deux �diteurs diff�rents: GNU Emacs, et XEmacs. Les deux proviennent du m�me h�ritage et partageant quasiment les m�mes caract�ristiques. Ce document se base sur GNU Emacs(plus pr�cisement la version 20.3) mais la plupart de ce qui sera dit ici s'applique aussi � XEmacs et aux versions pr�cedentes de GNU Emacs. Au cours de ce document, je ferais simplement r�f�rence � Emacs. Lorsque je le ferais, pensez � ce que je viens de vous dire.
Obtenir Emacs est simple. Si vous utilisez une distribution de Linux assez populaire, comme la debian, la RedHat ou la Slackware, ou n'importe quelles autres (NdT: comme la Mandrake), Emacs est un package optionnel que vous pouvez installer � partir du m�dium de distribution (NdT: CD-Rom, Disquette, r�seau). Sinon, vous pouvez toujours obtenir les codes sources d'Emacs et les compiler vous m�mes. Allez sur le site web de GNU pour l'endroit pr�cis o� r�cup�rer Emacs: http://www.gnu.org/software/emacs/emacs.html
En tant que nouvel utilisateur, vous allez probablement vouloir
lancer Emacs pour vous amuser un peu et l'essayer. Une fois dans
Emacs, l'une des premi�re choses � savoir, c'est: comment sortir, vous
ne serez peut-�tre pas capable de savoir le faire. Donc, si vous
n'avez jamais utilis� Emacs avant, lancer vous maintenant. Sur le
prompt du shell, tapez emacs
et appuyez sur entr�e. Emacs
devrais se lancer. Sinon c'est qu'il n'est soit pas install�, soit
absent de votre chemin(PATH).
Une fois que vous voyez Emacs, vous
devez savoir comment sortir. Les commandes pour quitter Emacs sont
C-x C-c
. La notation C-x
signifie que vous devez
appuyez sur la toucheCtrl
et sur la touchex
, en m�me
temps. Dans ce cas ci, vous devrez ensuite appuyez sur les touches
Ctrl
et c
toujours en m�me temps, pour quitter
Emacs.
Les commandes au clavier utilis�es par Emacs semblent �tre
vraiment �tranges, bizarre, et peut �tre m�me inconfortable pour vous
de prime abord, sp�cialement si vous �tes un utilisateur de
vi
. A la diff�rence de vi
, Emacs n'a pas de mode
s�par� pour �diter le texte, et executer des commandes.
Pour
r�capituler: emacs
lance Emacs. C-x C-c
termine
Emacs.
Quand Emacs se lance il prend la place enti�re de l'�cran(en mode texte), ou bien d'une fen�tre. Vous verez alors un menu en haut, un peu de texte au milieu, et 2 lignes en bas de l'�cran.
Cela ressemblera � cette �bauche en ASCII:
+----------------------------------------------------------------------+ |Buffers Files Tools Edit Search Mule Help | | | |Welcome to GNU Emacs, one component of a Linux-based GNU system. | | | | | | | | ... | | | |---1:---F1 *scratch* (Lisp Interaction)--L1--All-------------| |For information about the GNU Project and its goals, type C-h C-p. | +----------------------------------------------------------------------+
NOTE: Emacs utilisera normalement la totalit� de
l'�cran/fen�tre. J'ai r�duit l'exemple ci-dessus dans un soucis de
place. Vous aurez aussi un message de bienvenue dans Emacs lorsque
vous le lancerez pour la premi�re fois. Je l'ai aussi omis et l'ai
remplac� par ``...
`` � la place. Le message de bienvenue
donne simplement la version courante d'Emacs que vous utilisez, ainsi
que des liens vers la documentation en-ligne et des articles s'y
rapportant.
La ligne la plus en haut de l'interface d'Emacs est un menu. Si vous �tes sous X, vous la reconnaitrez comme �tant un menu traditionnel que vous pouvez utilisez en vous servant de votre pointeur. Sinon , vous devrez utiliser les raccourcis claviers(non expliqu�s ici) pour acceder aux menus.
Sur les deux derni�res lignes de l'interface d'Emacs, la plus haute et principalement une barre de status. Elle contient des informations a propos du buffer sur lequel vous travaillez, dans quel mode Emacs se trouve, et d'autres informations vari�es sur d'autres choses. Pour l'instant, regardez juste ce qu'elle contient.
La plus basse des lignes est appel� mini-buffer. Elle est s�par�e du buffer principal par la barre de status dont nous venons juste de parler. Vous pouvez penser que le mini-buffer d'Emacs est une ligne de ``commande``. C'est ici que les commandes que vous donnez � Emacs apparaissent, et c'est aussi ici que les messages d'�tats sont imprim�s en r�ponses aux actions que vous effectuez.
Vous
trouverez que ce que je nomme la barre de status est courament nomm�
mode line
dans la documentation d'Emacs. C'est ici qu'Emacs
affiche les informations � propos des modes courants que vous
utilisez, ainsi que des choses tels que l'heure et la date courantes,
le numero de ligne, la taille du fichier, ainsi que tous ce que vous
voudriez y voir afficher.
Cette section couvre les terminologies les plus simple d'Emacs que vous pourrez rencontrer quand lors de l'utilisation et des lectures � propos d'Emacs.
A la diff�rence d'autres �diteurs, quand vous ouvrez un fichier dans Emacs il ne reste pas ouvert tout le temps que vous travaillez dessus. A la place, Emacs lit celui-ci et le place dans un tampon en m�moire. Tant que vous �diterez le tampon et travaillerez avec les donn�es rien ne sera chang� sur le disque. Simplement, lorsque vous sauvegarderez le tampon que le fichier sur le disque sera modifi�. Cette m�thode poss�de des avantages et des inconv�nients mais cela est important que vous compreniez qu'il fonctionne de cette mani�re.
Comme cons�quence, vous verez le terme ``buffer`` (NdT : Tampon) utilis� dans la documentation Emacs , dans les differents modes, dans les packages, etc... Il faut juste r�aliser que buffer signifie ``une copie du fichier qui se situe en m�moire``. Il faut aussi signaler que le buffer ne pointe pas toujours sur un fichier sp�cifique. Souvent Emacs cr�e des buffers comme r�sultat d'une commande que vous avez �x�cut�, une liste de choix � effectuer, et ainsi de suite.
Dans la terminologie d'Emacs, vous entendrez ou lirez souvent des r�f�rences au sujet des points. En des termes simple le point signifie le curseur. La diff�rence entre point et curseur n'est pas importante lorsque vous commencer avec Emacs. Mais si vous etes curieux, pensez-y de cette mani�re: le curseur est la r�pr�sentation visuelle du point. Le curseur est toujours sur une position d'un caract�re pr�cis du buffer courant. Le point, d'un autre cot�, �volue dans l'espace entre les caract�res du buffer. Donc vous pouvez dire que si le curseur est sur la lettre `e` dans le mot ``les`` alors le point est entre le `l` et le `s`.
Comme la plupart des �diteurs modernes, Emacs permet d'�ffectuer des op�rations sur une section du buffer courant (identation, correction orthographique, reformatage, couper, coller, copier, ...). Vous pouvez marquer un bloc de texte en utilisant le clavier ou la souris et effectuer alors des op�rations uniquement sur la zone s�l�ctionn�e. Dans Emacs, ces blocs des textes sont nomm�s r�gions.
Cela sera peut-�tre un peu confus pour n'importe qui ayant utilis� une interface graphique avant. Il faut juste se rappeler qu'Emacs a �t� d�velopp� longtemps avant que les interfaces graphiques et les gestionnaires de fen�tres soit populaires.
Une fen�tre dans Emacs est une zone de l'�cran dans laquelle un buffer est affich�. Quand Emacs est lanc�, vous avez seulement une fen�tre affich�e. Quelques fonctions d'Emacs, comme la documentation et l'aide, ouvrent souvent (temporairement) une fen�tre suppl�mentaire dans votre �cran d'Emacs.
Les fen�tres d'Emacs n'ont rien en commun avec celle de X-Window en terme d'interface graphique. Vous pouvez ouvrir d'autres fen�tre X-Window pour afficher des buffers d'Emacs, par exemple pour comparer deux fichiers c�te � c�te. Ces nouvelles fen�tres X-Window sont r�f�renc�es comme des frames dans les termes d'Emacs.
Dans Emacs, une frame est une fen�tre X-Window s�par�e dans laquelle un bufer d'Emacs est affich�. Mais les deux sont une partie de la m�me session d'Emacs. L'attitude est un peu la m�me que celle d'ouvrir plusieurs fen�tres d'Emacs lorsque vous tapez Alt+N.
Cette section couvre les bases de la frappe au clavier pour Emacs. Comme tous les �diteurs puissant, tout ce qui peut �tre fait avec Emacs n'est qu'a quelques touches plus loin.
Si vous etes un
utilisateur de vi
, la notion d'utilisez les
touchesk,j,l,h
pour remonter ou descendre d'une ligne,
avancer ou reculer sur celle-ci vous a surement pris un peu de
temps. En fait cela vous a surement pris quelques heures pour y �tre
habitu�, � pouvoir vous d�placer normalement dans un fichier en
utilisant les diff�rentes combinaisons de touches disponibles dans
vi
.
Emacs est diff�rent. Il existe diff�rentes
combinaisons et commandes � apprendre. Comme vi
, vous aurez
uniquement � maitriser les commandes de bases pour pouvoir effectuer
quasiment tous les travaux. Alors, au fil du temps, vous pourrez
continer tranquillement l'apprentissage et trouver de meilleures voies
pour arriver � vos fins.
Comme vous allez bientot l'apprendre, Emacs fait une �norme
utilisation des combinaisons des touches multiples. Etant donn� que ce
n'est pas un �diteur poss�dant diff�rents modes comme vi
,
vous n'aurez pas a penser en terme de mode de commande ou de mode
d'�dition avant de pouvoir bouger le curseur ou d'�x�cuter une
commande. A la place, vous aurez juste � presser la bonne combinaison
de touches et Emacs fera ce que vous lui aura demand�(normalement
:-)).
Les touches qu'Emacs utilise les plus sont le plus souvent
les touches Control, r�f�renc�e dans la documentation commme
C
et la touche Meta M
. Comme peu d'ordinateur
poss�de un clavier poss�dant cette touche, il faudra substituer �
cette touche la touche Escape Esc
ou la touche Alternate
Alt
. Dans la plupart des configurations les touches Esc et
Alt font la m�me chose.
Donc lorsque vous verez une r�f�rence dans
n'importe quelles documentation sur Emacs � C-x f
cela
signifie ``appuyez sur control-x et ensuite f``. Et si vous voyez un
r�f�rence � quelque chose de la forme M-x shell
cela signifie
``appuyez sur alt-x et tapez le mot shell``.
Une commande tr�s
utile pour les d�butants est la commande M-x apropos
ou la
commande C-h a
. apropos cherchera dans la documentation Emacs
en ligne de toutes les fonctions comportant l'expression r�guli�re que
vous tap�. C'est la mani�re la plus simple de d�couvrir toutes les
commandes relatives aux frames. Tapez simplement C-h a
et
puis frame
Maintenant que vous savez ce que signifie toutes ces abbr�viations fantaisistes signifient, voici la liste des commandes les plus populaires pour se d�placer dans un buffer.
Commandes Clavier Action ----------------------------------- C-p Monter d'une ligne C-n Descendre d'une ligne C-f Avancer d'un caract�re C-b Reculer d'un caract�re C-a D�but de ligne C-e Fin de ligne C-v Descendre d'une page M-v Monter d'une page M-f Avancer d'un mot M-b Reculer d'un mot M-< Debut du buffer M-> Fin du buffer C-g Finir l'op�ration courante -----------------------------------
Et, comme vous pouviez vous y attendre, les fl�ches de direction
fonctionnent comme vous vous l'esperiez. Votre touche
Backspace
peut-�tre pas. Mais c'est une autre histoire.
Bon, maintenant que vous savez vous d�placer dans un buffer, qu'en est-il d'ouvrir et de fermer des fichiers, d'effectuer des recherches. Voici les commandes de base.
Avant de passer � ces commandes, je ferais le brievement le point sur son fonctionnement.
Toutes ces ``commandes claviers`` dans Emacs (celles avec M-x
qqle chose
ou C-qqle chose
) ne sont juste que des
raccourcis vers des fonctions internes a Emacs. Vous pouvez les
appeler aussi en tapant M-x nomdelafonction
et en appuyant
sur Entr�e
. Vous pouvez aussi utiliser le raccourci clavier
de cette fonction (si elle en a un).
Par exemple, la fonction
Emacs qui sauvegarde le buffer vers le disque est appel�e
save-buffer
. Par d�faut, elle est aussi reli�e � C-x
C-s
. Vous pouvez donc soit tapez M-x save-buffer
et
obtenir le m�me r�sultat.
Toutes les fonctions le plus communes poss�dent un raccourci clavier par d�faut. En voici quelques exemples.
Commandes Clavier Fonction Description ------------------------------------------------------------------- C-x C-s save-buffer Sauvegarde le buffer courant sur le disque C-x u undo Annule la commande pr�c�dente C-c C-f find-file Ouvre un fichier C-s isearch-forward Recherche en avancant une chaine de caract�re C-r isearch-backward Recherche en reculant une chaine de caract�re replace-string Recherche et remplace une chaine de caract�re replace-regexp Recherche et remplace une chaine de caract�re en utilisant regexp C-h t help-with-tutorial Utilisation du tutorial C-h f describe-function Affiche l'aide pour une fonction C-h v describe-variable Affiche l'aide pour une variable C-h x describe-key Affiche le comportement d'une combinaison de touches C-h a apropos Recherche l'aide pour string/regexp C-h F view-emacs-FAQ Affiche la FAQ d'Emacs C-h i info Affiche la documentation d'Emacs C-x r m bookmark-set Configure un signet. Utile dans les recherches. C-x r b bookmark-jump D�placement vers un signet. -------------------------------------------------------------------
Comme vous utiliserez beaucoup de ces fonctions, vous remarquerer
que beaucoup vous demanderons quelque chose. Cela aura toujours
rapport avec le mini-buffer. C'est similaire d'utiliser la commande
:
dans vi
ou dans la plupart des commandes que vous
utilisez avec votre shell favori.
Emacs poss�de des centaines de fonctions de base. La liste au dessus n'est qu'un tr�s petit exemple de ce que j'utilise r�guli�rement. Voyez la documentation en ligne pour une liste plus compl�te des fonctions disponible et une documentation compl�te sur ce qui est mentionn� au dessus.
Comme la plupart des shells unix (bash, csh, tsch, ...) Emacs offre
la possibilit� d'utiliser la compl�tion grace � la touche
Tab
. En fait, la commande de compl�tion du bash
a
�t� modifi� apr�s celle d'Emacs, donc si vous utilisez cette
possibilit� dans bash
vous serez chez vous.
Pour exemple,
essayer M-x search
et appuyez sur Tab
. Emacs
ajoutera un trait d'union pour indiquer qu'il existe plusieurs
possibilit�es mais qu'elles poss�dent toutes un trait d'union comme
prochain caract�re. Tapez la touche Tab
une fois de plus pour
qu'Emacs affiche les suites possibles dans lesquelles vous pourrez
choisir. Prenez note du fait qu'il fait cela dans une nouvelle
fen�tre: une contient le buffer courant que vous �diter en ce moment,
l'autre contient la selection des compl�tions possibles pour
``search-``. Vous pourrez alors appuyer sur C-g
pour sortir
du processus de selection et fermer cette nouvelle fen�tre.
Emacs est install� avec un tutorial en ligne qui vous aidera � utiliser les fonctiones d'�dition de base et les fonctions que tout le monde doit connaitre. Il explique aussi comment utiliser les autres aides d'Emacs.
Je vous recommande vraiment de passer un peu de
temps a travers ce tutorial si vous pensez � faire un serieux effort
pour apprendre Emacs. Comme indiqu� dans la table plus haut, vous
pouvez entrer dans le tutorial par C-h t
. Le tutorial est
dirig� est cibl� pour les personnes qui commencent tout juste avec
Emacs.
Si vous lancer Emacs sous X, Vous verez que le menu le plus en haut � droite est label� Help (Aide). Lorsque vous explorerez le menu, vous verez que certaines rubriques poss�dent des raccourcis et ceux ci sont list�s dans la partie droite du menu.
Enfin, pour
voir le volume de documentation disponible avec Emacs, vous pouvez
essayer M-x info
ou C-h> i
qui lancera Info, le
navigateur dans la documentation 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.
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.
Toutes les customisations d'Emacs peuvent virtuellement �tre effectu� par du code Lisp. Vous pouvez modifier des variables qui influence la mani�re d'agir d'Emacs, ou vous pouvez ajouter de nouvelles fonctions � Emacs (ou effacer des fonction existantes, en les remplacant par les v�tres).
Lorsque vous vous habituerez � customiser Emacs, vous voudrez
probablement le faire d'une mani�re temporaire. Si vous faites quelque
chose de vraiment mauvais, vous pourrez sortir avec C-x C-c
et le relancer. Une fois que vous aurez trouv� les changements qui
vous plaisent, vous voudrez les rendre permanent, vous pourrez alors
les ajouter � votre fichier .emacs
pour qu'ils soient effectif �
chaque lancement d'Emacs. Nous en parlerons dans la prochaine section.
La plus simple des customisations � faire est de changer la valeur d'une variable d'Emacs. Le code pour effectuer cette action ressemble � celui-ci:
(setq nom-variable nouvelle-valeur)
O� nom-variable
est le nom de la variable et
nouvelle-valeur
est la valeur que vous voulez affecter. (En
langage Lisp, vous assignez une variable � une valeur.) La fonction
setq
est analogue � un op�rateur d'assignement(courament
=
) dans d'autres langages de programmations.
NOTE: Je passe sur beaucoup de d�tail dans un soucis de
simplicit�. Vous me verez moi, ou d'autres utiliser la fonction Lisp
set
et m�me setq-default
. Si vous �tes vraiment
curieux, aller voir de quoi il retourne dans la r�ference Lisp
d'Emacs.
Regarder cette ligne de mon fichier .emacs
.
(setq-default transient-mark-mode t)
La Variable transient-mark-mode
contr�le si une region
doit �tre surlign� ou lorsqu'on la marque. Dans beaucoup d'application
graphique, lorsque vous cliquez et d�placez le pointeur pour
selectionner une partie du texte, elle devient surlign�e en mode
inverse, ou dans une autre couleur. Emacs effectuera de m�me lorsque la
variable transient-mark-mode
aura une valeur non nulle
d'affect�e.
QUELLE valeur?
D'accord. Petite digression. Beaucoup de langage de programmation ont des notions de valeurs vrai/fausse (true/false). En C/C++ une valeur est consid�r� vrai (true) si elle poss�de une valuer non nulle. En Perl, une valeur non nulle ou diff�rentes de z�ro est vrai (true). En Lisp, la m�me id�e s'applique, mais avec des noms et des symboles diff�rents.
Vrai (True) est
courament �cris comme ceci t
et faux (False) (ou Null) est
�crit comme nil
. Comme d'autres language, bien sur, toute
valeur non nulle est consid�r� comme vrai.
Pour donner la description compl�te de ce que fait
transient-mark-mode
, vous pouvez utilisez l'aide en-ligne.
Tapez C-h v
ou M-x describe-variable
puis
transient-mark-mode
. Si vous �tes fain�ant comme moi, vous
pourrez tirez avantage de la compl�tion des noms de variables en
utilisant la touche Tab
Tapez juste les premi�res lettres et
appuyez sur la touche Tab
. Si vous avez tap� assez de lettre
pour qu'Emacs puisse l'identifier, vous verez apparaitre le mot entier
compl�t� pour vous.
Une autre variable que l'on utilise souvent
est fill-column
. Si vous dites � Emacs la largeur de
l'�cran, il effectura la casse des lignes (et auto-fill-mode
respecte cette valeur). Pour affecter une valeur absurde vous pouvez
tapez:
(setq fill-column 20)
Mais cela ne fait rien maintenant. Vous devrez demander � Emacs
d'�valuer l'expression que vous avez tap�. Pour l'�valuer,
placer le point (le curseur) � la fin de l'expression et tapez C-x
C-e
, qui appelera la fonction eval-last-sexp
. Lorsque
vous ferez cela, notez que 20
(ou ce que vous avez tap�) est
renvoy� dans la mini-buffer en bas de l'�cran. C'est la valeur de
retour de l'expression que vous avez �valu�.
Juste pour montrer que cela marche, taper une phrase ou deux. Si
vous avez le mode auto-fill-mode
activ� (probablement pas)
Vous remarquerez que le texte est cass� � la colonne 20. Autrement
apr�s avoir tap� quelque chose, tapez M-q
qui appelera la
fonction fill-paragraph
. Il effectura alors la casse du
paragraphe.
Vous pouvez configurer Emacs pour qu'il effectue des t�ches
automatiques lorsque vous ouvrez des fichiers d'un certain type (comme
certaines interfaces graphiques lance une application lorsque l'on
clique sur un fichier pr�cis). Par exemple, Je veux qu'Emacs passe en
mode text-mode
chaque fois que j'ouvre un fichier avec
l'extension .txt
. Bon, il le fait d�j�. :-)
Donc
faisont le passer en mode text-mode
lorsqu'il ouvre un
fichier "README".
(setq auto-mode-alist (cons '("README" . text-mode) auto-mode-alist))
Ouch?
Sans plonger dans des flots de programmation Lisp que vous n'avez
pas besoin de connaitre (mais cela ne vous fera pas de mal d'en
apprendre plus), laisser juste vous expliquer que la variable
auto-mode-alist
contien une liste de paires . Chaque paires
contient une expression r�guli�re et un nom de mode Emacs. Si dans un
fichier que vous ouvrez correspond � l'une des expressions r�guli�res
(dans ce cas, la chaine README
) Emacs lance automatiquement
le mode que vous avez sp�cifi�.
La syntaxte amusante ;-) au dessus est du au fait que nous
rajoutons une paire � ce mode. Vous ne voulez surement pas juste
assigner � auto-mode-alist
une valeur sans vous assurer que
les valeurs contenues ne sont pas perdue.
Et si vous voulez qu'Emacs passe dans le mode
html-helper-mode
chaque fois que j'ouvre un fichier que se
termine par .html
ou .htm
, je n'ai qu'� ajouter �
mon fichier .emacs:
(setq auto-mode-alist (cons '("\\.html$" . html-helper-mode) auto-mode-alist)) (setq auto-mode-alist (cons '("\\.htm$" . html-helper-mode) auto-mode-alist))
Les possibilit�s sont vraiment sans fin.
.emacs
Apr�s avoir pass� quelque temps avec Emacs et avoir une id�e de base de ce que l'on peut customiser, vous voudrez probablement changer quelques petites options de mani�re permanente. (ou au moins jusqu'� ce que vous ayez chang� d'avis. Si vous utiliser Emacs tout les jours, vous trouverez que votre fichier .emacs grossis de plus en plus. C'est bon puisque cela signifie que vous avez compris comment faire fonctionner Emacs de la mani�re dont vous voulez. C'est triste de voir que peu de programmes permettent cette approche.
Dans le cas ou vous n'auriez pas encore devin�, chaque fois que
vous lancez Emacs, il cherche dans le fichier .emacs
dans
votre r�pertoire home. Votre fichier .emacs
est le fichier
o� tout le code que vous voulez lancer automatiquement et toutes
sortes de customisations que nous avons vu pr�cedement.
Un autre exemple de mon fichier .emacs
:
(setq inhibit-startup-message t)
La varialbe inhibit-startup-message
contr�le si Emacs doit
afficher le message de bienvenu ou non. Apr�s un certain temps, je
devenais malade en le voyant ( car je savais o� trouver l'aide et
autres trucs) donc j'ai cherch� une mani�re de le d�sactiver.
Comme exercice, essayer de cr�er un fichier .emacs
par vous
m�me et en ajoutant cette ligne. Sortez alors d'Emacs, et relancer le.
Vous ne devriez plus voir le message de bienvenue.
Souvent, lorsque vous lisez quelque chose � propos d'un mode
Emacs(ou d'un package), la documentation sugg�rera d'ajouter des
lignes � votre fichier .emacs
pour pouvoir faire fonctionner
le package ou le mode d'une mani�re pr�cise.
La FAQ GNU Emacs (C-h F
) contient quelques unes des
options concernant le fichier .emacs
que vous trouverez
peut-�tre utile.
Au fur et � mesure du d�veloppement d'Emacs en popularit� et son
�volution, quelques un ont dis "il y doit y avoie une meilleure
mani�re de permettre aux novices de customiser Emacs." Et
customize
�tait n�.
Customize procure aux utilisateurs une mani�re plus intuitive de configurer des parties d'Emacs. Pour l'essayez, visitez le sous-menu Customize
de votre menu Help
, ou tapez M-x customize
.
Customize groupe la configuration dans des groupes logiques, tels que ``Editing'', ``Programming'', ``Files'', et ainsi de suite Quelques groupes contiennent des sous-groupes.
Si vous effectuer des changements en utilisant l'interface Customize
, Emacs sauvegardera vos changements dans votre fichier .emacs
C'est assez pratique, car cle code ajout� peut-�tre facilement inspect� (et chang�)
Je n'utilise pas l'interface Customize
, je ne peut donc pas vous en dire plus..
Comme n'importe quelle application X, Emacs respecte vos ressources
X. Cela signifie que vous pouvez contr�ler les couleurs initiales,
(geometrie), et d'autres choses sp�cifiques que vous pouvez faire avec
un xterm
ou nxterm
, ou autre.
Voici une partie utile de mon fichier ~/.Xdefaults
:
emacs*Background: DarkSlateGray emacs*Foreground: Wheat emacs*pointerColor: Orchid emacs*cursorColor: Orchid emacs*bitmapIcon: on emacs*font: fixed emacs.geometry: 80x25
Voyez les pages man X
pour plus de d�tails � propos des ressources X.
Chris Gray ( cgray4@po-box.mcgill.ca) dis aussi:
Dans la debian, le fichier~/.Xdefaults
ne semble pas �tre utilis�. N�anmoins, les utilisateurs de la debian peuvent mettre ce que vous avez mis plus haut dans le fichier/etc/X11/Xresources/emacs
et ils auront toutes les belles couleurs comme si ils utilisaient une RedHat.
En ajout de tout les diff�rents modes disponibles d'Emacs, il existe aussi beaucoup de package que l'on peut ajouter. Je les appelle package car ce sont plus que des nouveaux modes. Ils proposent souvent des possiblit�es �tendue, ou sont trop gros pour �tre nomm� modes, car cela ne leur rendrais pas justice. Dans d'autres cas, ce sont des logiciels qui �tendent ou integrent d'autres modes d'Emacs et des packages. La distinction n'est pas totalement claire, mais c'est assez.
Pour citer la VM FAQ:
VM (View Mail) est un sous-syst�me d'Emacs qui permet de lire des mails et de les manipuler � l'int�rieur d'Emacs. Des commandes existent pour effectuer toutes les actiosn classiques d'un client Mail, comme la g�n�ration de r�ponse, la sauvegarde dans un r�pertoire, l'effacement de message, etc ... Il existe aussi d'autres commandes avanc�es qui effectue des t�ches comme la cr�ation ou l'�clatement de sommaire/r�sum�, la retransmission (Forward), et l'organisation de la pr�sentation des messages suivant diff�rents crit�res.
Quand J'ai commenc� � utilisez Emacs, J'ai essay� VM pendant un certain temps. J'ai trouv� que c'�tait le grand remplacant pour Pone, Elm, ou d'autres client Mail. Mais je n'avais pas envie d'utiliser de programme distinct pour consulter Mail et News. VM est activement d�velopp� et assez bien support� aujourd'hui.
Il est disponible ici: http://www.wonderworks.com/vm/.
Pour citer le manuel GNUS:
Gnus est un laboratoire de lecture des messages. Il vous laissera voir n'importe quoi comme �tant un groupe de discussion. Vous pouvez lire des mails, naviguer dans vos r�pertoires, faire du ftp, vous pouvez m�me lire des messages des groupes de discussion!
Gnus essaye de permettre aux utilisateurs de lire des news de la mani�re dont Emacs permet aux utilisateurs d'�diter un texte. Gnus ne fixe aucune limite � ce que les utilisateur peuvent �tre capable de faire. Les utilisateurs sont encourag�s � �tendre Gnus pour qu'il se comporte comme l'utilisateur le veut. Un programmene
doitpas
contr�ler les utilisateurs; les utilisateurs doivent permttre de faire se qu'ils veulent en l'utilisant (ou en abusant) le programme.
GNUS est le programme que j'utilise en ce moment pour mes mails et mes news (comme je l'ai dis plus t�t). GNUS est activement d�velopp� et tr�s bien support� aujourd'hui..
Il est disponible ici: http://www.gnus.org/.
BBDB est une insidieuse base de donn�e de type Big Brother
un programme comme rolldex pour Emacs qui fonctionne avec la plupart des packages populaires de mails d'Emacs (Vm et GNUS inclus).
Il est disponible ici: http://pweb.netcom.com/~simmonmt/bbdb/index.html.
AucTeX est un autre mode pour �diter des fichiers TeX.
Pour siter le site internet d'AucTeX:
AUC TeX est un package extensible qui supporte l'�criture et le formatage des fichiers TeX pour la plupart des variantes d'Emacs. Beaucoup de package de macro sont disponible, tel que AMS TeX, LaTeX, and TeXinfo.
Il est disponible ici: http://sunsite.auc.dk/auctex/.
Cette section concerne les livres, les sites Web, les groupes de discussion, les mailings listes et d'autres lieux ou vous pourrez trouver des informations � propos d'Emacs.
Il existe quelques bon livres disponibles pour apprendre Emacs. En
plus de cela, vous remarquerez que dans beaucoup de livres sur Linux
ou Unix vous avez un chapitre ou deux au sujet d'Emacs (et
vi
)..
Auteurs: Debra Cameron, Bill Rosenblatt, Eric S. Raymond
Editeur: O'Reilly & Associates - http://www.ora.com/
Vous pouvez l'acheter par Amazon.com via leur programme d'association: http://www.amazon.com/exec/obidos/ASIN/1565921526/
Commentaire: C'est probablement le meilleur livre pour commencer. Apr�s avoir lu le HOWTO,et et regard� la FAQ, ce livre vous servira comme tutorial compr�hensible et approchable.
Auteur: Bob Glickstein
Editeur: O'Reilly & Associates - http://www.ora.com/
Vous pouvez l'acheter par Amazon.com via leur programme d'association: http://www.amazon.com/exec/obidos/ASIN/1565921526/
Commentaire:Apr�s avoir utilis� Emacs durant quelques temps, et avoir d�cid� que vous aimeriez �crire votre propre mode, ou peut-�tre essayer quelques customisations avanc�e, ce livre est fait pour vous. Il ne pr�tend pas vous apprenne le Lisp, mais contient quand m�me une courte introduction.
Auteur: Robert J. Chassell
Extrait du fichier README
C'est une introduction elementaire pour programmer en Lisp Emacs, pour les non programmeurs, et qui ne sont pas int�ress� par la programmation, mais qui veulent customiser ou �tendre leur environement de travail.
Vous pouvez r�cuperer le manual dans sa totalit� via FTP anonyme � partir du serveur GNU FTP: ftp://prep.ai.mit.edu/gnu/emacs/.
Vous pouvez acheter une version imprim� par Amazon.com via leur programme d'association: http://www.amazon.com/exec/obidos/ASIN/1882114418/jeremydzawodny/.
Commentaire: C'est un bon manuel d'introduction au Lisp d'Emacs, m�me si vous n'�tes pas un programmeur confirm�.
Auteur: Richard Stallman
Editeur: The Free Software Foundation - http://www.fsf.org/
Vous pouvez r�cuperer le manual dans sa totalit� via FTP anonyme � partir du serveur GNU FTP: ftp://prep.ai.mit.edu/gnu/emacs/.
Commentaire:C'est le guide ultime pour le langage de programmation Lisp d'Emacs
EMACSulation est une colonne �crite par Eric Marsden qui apparait dans le magazine en-ligne Linux Gazette situ� � http://www.linuxgazette.com/. La colonne �crite la plus r�cente � ce jour est situ� � http://www.linuxgazette.com/issue39/marsden.html. Regarder en bas de l'article pour obtenir les colonnes pr�c�dentes.
Rechercher dans votre fournisseur de news local les groupes de
discussion qui contiennent la chaine emacs
et vous en
trouverez probablement quelques uns ... Voici ceux que mon serveur
supporte:
La seule liste de diffusion d�di�e � Emacs que je connaisse � l'heure actuelle et la liste NT-Emacs. C'est une liste pour les utilisateurs d'Emacs sur Micro$oft Windows. Voyez la FAQ NT-Emacs http://www.cs.washington.edu/homes/voelker/ntemacs.html pour plus d'informations.
Extrait du README des archives Lisp Emacs:
Les archives Lisp Emacs sur ftp.cis.ohio-state.edu contiennent diff�rentes portions et packages du code de Lisp Emacs. Lisp Emacs est le langage utilis� pour l'�diteur GNU Emacs publi� par la FSF. Bien que le code de Lisp Emacs soit inclut dans la distribution d'Emacs, bon nombre de personne ont �crit des packages pour l'interfacer avec d'autres syst�mes, pour avoir un meilleur support de l'�dition de leur langage de programmation, pour ajouter des options, ou pour changer le comportement par d�fault d'Emacs. La plupart du contenu de cette archive a �t� �crit par des personnes(individuals) et distribu� sur internet par les listes de diffusions info-emacs, info-gnu-emacs, ou des groupes de discussion tel que comp.emacs, gnu.emacs ou gnu.emacs.sources.
Les archives sont disponibles via Ftp anonyme � l'adresse ftp://ftp.cis.ohio-state.edu/pub/emacs-lisp/.
NOTE: Pour autant que je puisse dire, les archives Lisp
d'Emacs commencent � �tre p�rim�es. J'ai vu seulement quelques
nouveaux package ou des mises � jour apparaitre, quoique je sais qu'il
en existe. Ils sont
post�s sur le groupe de discussion
comp.emacs.sources
. (Corrigez moi si je me trompe.)
Les personnes suivantes ont contribu� au succ�s de ce document.