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.
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:17