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

4. Customiser Emacs

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).

4.1 Customisation Temporaire

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.

Assignements de Variable

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)

nom-variable est le nom de la variable et nouvelle-valeurest 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.

Associations de fichiers

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.

4.2 Utiliser un fichier .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.

4.3 Le Package Customisé.

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..

4.4 L'affichage X Windows

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 Xpour 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.


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