La compilation de programmes s'effectue généralement par
l'intermédiaire du programme make (voir
http://www.april.org/groupes/doc/make/make.html
).
Emacs fournit une interface de compilation, qui s'exécute par
le biais de la commande compile (M-x compile
). Une
fenêtre contenant le buffer *compilation*
apparaît alors, et
affiche la sortie standard de la compilation. Il peut être utile de
créer un raccourci pour compile au moyen de
local-set-key ou de global-set-key (j'utilise
personnellement C-c RET
).
L'intérêt de cette interface est la gestion des erreurs. Lorsque la compilation ne réussit pas, une convention est que le compilateur affiche un message d'erreur du type :
client.c:33: parse error before `{'
Emacs analyse cette ligne, et peut en déduire qu'il y a une
erreur dans le fichier client.c
à la ligne 33
. Les
différentes erreurs sont répertoriées, ce qui autorise alors le mode
compilation à proposer une navigation dans celles-ci ainsi que des
liens vers les fichiers concernés.
Le mode compilation possède les raccourcis suivants :
ESC {
: permet de déplacer le point sur le
fichier précédent contenant une erreur
ESC }
: permet de déplacer le point sur le
prochain fichier contenant une erreur
ESC p
: permet de déplacer le point sur l'erreur
précédente
ESC n
: permet de déplacer le point sur l'erreur
suivante
C-c C-k
: arrête la compilation
C-c C-c
ou RET
: ouvre le fichier se trouvant
sous le point dans une nouvelle fenêtre, et déplace le point dans
cette fenêtre à la ligne fautive
Emacs fournit bien sûr un mode LaTeX, et une des possibilités de ce mode est la compilation du fichier édité : Emacs permet de lancer un processus de compilation sur le buffer courant ou sur une région.
Commandes LaTeX :
C-c C-b
: invoque LaTeX sur le
buffer courant
C-c TAB
: invoque BibTex sur le
fichier courant
C-c C-f
: invoque LaTeX sur le
fichier courant
C-c C-k
: arrête le processus de compilation
LaTeX
C-c C-v
: visualise le fichier de sortie de la
dernière commande de compilation LaTeX (xdvi
,
spécifié par la variable tex-dvi-view-command
)
C-c C-p
: imprime le fichier de sortie de la dernière
commande de compilation LaTeX (lpr
, spécifié par la
variable tex-dvi-print-command
)
C-c C-q
: affiche la queue d'impression (lpq
)
Afin de faciliter l'édition de documents, le mode LaTeX
propose deux raccourcis pour insérer les commandes LaTeX
begin (C-c C-o
) et end (C-c C-e
).
Emacs est un éditeur de textes basé sur le langage Lisp. Il est donc normal qu'il fournisse une excellente interface de développement Lisp. Le langage utilisé est un dialecte de Common-Lisp : l'Emacs-Lisp.
Emacs fournit un mode majeur pour éditer toutes sortes de codes Lisp, mais il possède également un mode Emacs-Lisp, qui propose de plus l'évaluation d'expressions (sexps).
Il existe plusieurs façons d'utiliser ce mode :
M-x ielm
(Interactive Emacs Lisp Mode), qui
crée un buffer *ielm*
, où l'utilisateur peut entrer
interactivement des instructions Emacs-Lisp qui seront évaluées au fur
et à mesure de leur saisie.
*scratch*
, qui est normalement
créé au démarrage de toute session Emacs, et qui est par
défaut en mode Emacs-Lisp.
.el
,
ce qui fait basculer le buffer en mode Emacs-Lisp. Ceci est
spécifié par la variable auto-mode-alist
.
Emacs permet d'évaluer des expressions Lisp de plusieurs manières :
M-x eval-buffer
permet d'évaluer le buffer tout
entier. C'est un bon moyen de charger un fichier Emacs-Lisp.
M-C-x
permet d'évaluer l'expression située sur le
point ou juste avant. Avec un argument, cette commande imprime le
résultat dans le buffer courant au niveau du point.
C-x C-e
permet d'évaluer la dernière expression
Lisp. Avec un argument, cette commande imprime le résultat dans
le buffer courant au niveau du point.
Emacs offre des interfaces avec d'autres lisps.
A faire...
VC (Version Control) vous permet d'utiliser un système de contrôle de version directement sous Emacs. VC fournit une interface uniforme quelque soit le système de contrôle de version qui est utilisé (RCS, CVS et SCCS). Les commandes de VC sont conceptuellement proches des commandes RCS, ainsi presque tout ce que vous pouvez faire avec RCS peut être fait à travers VC.
RCS utilise normalement le locking, c'est-à-dire qu'une seule personne peut modifier un fichier. Pour cela, les fichiers de travail sont en mode lecture seule. Si vous souhaitez apporter des modifications et les intégrer au master (le fichier qui contient l'istorique des modifications), vous devez demander au système de contrôle de rendre le fichier de travail accessible en écriture pour vous et le vérouiller. Un seul et unique utilisateur peut faire cela à un instant donné. Lorsque vous validerez vos modifications (par un checkin), le fichier sera dévérouillé, et le fichier de travail de nouveau en lecture seule.
Une fois que vous avez créé un fichier, vous devez l'enregistrer dans
le système de contrôle de version par la commande M-x
vc-register
(C-x v i
) qui crééra le fichier master (dont
le nom se termine par ,v
) correspondant au fichier édité. Le
fichier master représente l'état actuel du fichier plus tous les
historiques de changement, ainsi que les entrées de journalisation
decrivant en quelques mots les modifications apportées pour chaque
version du fichier. Ainsi, si vous éditez le fichier foo.c, la
commande vc-register
crééra le fichier foo.c,v.
Ensuite, chaque fois que vous visiterez un fichier qui est sous le
sytème de contrôle, Emacs l'indiquera par exemple avec RCS-1.2 dans la
fenêtre d'état (signalant ainsi que la version du fichier est la
1.2). Le caractère entre RCS et le numéro de version indique le status
du fichier. `-
' signifie que le fichier n'est pas vérouillé
(si le locking est utilisé) ou n'est pas modifié (si le locking n'est
pas utilisé). `:
' indique que le fichier est vérouillé, ou
qu'il est modifié. Si le fichier est vérouillé par un autre
utilisateur (par ex, benj
), c'est indiqué comme suit
`RCS:benj:1.2
'.
Si vous avez créé un fichier, enregistré sous le système de contrôle
et que vous voulez y apporter des modifications, vous ouvrez donc le
fichier (C-x C-f
). Le fichier de travail étant en lecture
seule, vous ne pouvez pas le modifier. Vous devez d'abord vérouiller
le fichier (M-x vc-toggle-read-only
, C-x C-q
). Vous
apportez des modifications, et une fois que vous voulez les intégrer
dans le master, vous utilisez la commande vc-next-action
(C-x v v
). Celle-ci ouvrira un buffer pour que vous puissez
entrer le message de journalisation (log) indiquant en
quelques mots les raisons des modifications. Pour valider, tapez
C-c C-c
(M-x compile
).
En fait, la commande C-x v v
peut suffire pour la plupart des
opérations, une fois un fichier enregistré auprès du système de
contrôle. L'action entrainée par cette commande dépendra de l'état du
fichier et du fait que le système de contrôle de version utilise le locking ou
non.
Pour une documentation sur le contrôle de version indépendant
d'Emacs, voir la page du groupe de documentation APRIL (
http://www.april.org/Travaux/Doc/
)