Votre premier .emacs : la configuration d'Emacs pour les zéros

Formation

En Semi-présenciel Paris

Prix sur demande

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Description

  • Typologie

    Formation

  • Méthodologie

    En semi-présentiel

  • Lieu

    Paris

Grâce à cette formation vous pourrez acquérir les connaissances nécessaires qui vous permettrons d’ajouter des compétences à votre profil et obtenir de solides aptitude qui vous offriront de nombreuses opportunités professionnelles.

Les sites et dates disponibles

Lieu

Date de début

Paris ((75) Paris)
Voir plan
7 Cité Paradis, 75010

Date de début

Consulter

Questions / Réponses

Ajoutez votre question

Nos conseillers et autres utilisateurs pourront vous répondre

À qui souhaitez-vous addresser votre question?

Saisissez vos coordonnées pour recevoir une réponse

Nous ne publierons que votre nom et votre question

Les Avis

Le programme

Introduction du cours

Ceci n'est pas une introduction à Emacs en soi mais à sa configuration. Si vous connaissez les bases, si vous avez lu le tutorial intégré ou quelque chose d'équivalent, et que vous arrivez à vous déplacer, écrire du texte et éditer des fichiers dans Emacs, mais souhaitez changer certains paramètres de son comportement, cet article est peut-être pour vous.

Cette introduction à la configuration vous apprendra au passage les bases de la syntaxe utilisée pour écrire le fichier .emacs ; si vous voulez juste copier et coller des bouts de code, cet article n'est pas pour vous.

Je ne documente ici ni XEmacs, ni NTEmacs, seulement GNU Emacs, soyez averti. Ce n'est pas que j'aie quoi que ce soit contre ceux-ci, mais je ne connais pas bien les autres emacs.

Comment configurer Emacs ?

Il existe trois moyens de configurer Emacs : par le menu, par une application intégrée appelée customize ou en éditant le fichier .emacs, situé dans votre dossier personnel ($HOME pour les étourdis).

Cet article porte sur l'édition du fichier .emacs, mais je vais tout de même passer en revue les autres possibilités pour vous expliquer pourquoi nous n'allons pas y avoir recours.

Par le menu

La première méthode n'a pas besoin d'explications ; si vous lisez ceci, vous savez probablement vous servir d'une souris, ou, ce qui est encore mieux, d'un clavier, et quoi qu'il en soit, c'est suffisant pour configurer Emacs par le menu. Cette approche est toutefois très limitée, les options du menu étant ce qu'elles sont, et rien de plus.

Par customize

La deuxième méthode offre un choix beaucoup plus important d'options ; quasiment tout ce qui est utile en terme de configuration directe peut être réalisé par cette interface. Pour l'invoquer, il suffit d'utiliser la commande customize (invoquée par M-x customize comme vous vous en doutez si vous avez eu une introduction décente à Emacs ; sinon, sachez que M-x signifie « la touche X en maintenant la touche Meta, ou Alt sur les claviers de PC, enfoncée »).

À partir de là, l'interface est assez simple : il y a des options, avec leur description, et leur valeur actuelle, modifiable, ainsi que des dossiers avec plus d'options et des sous-dossiers. Pour tout sauvegarder, il y a un bouton en haut du buffer. Cela écrira dans le fichier .emacs, par défaut.

Cette méthode a cependant un défaut : les modifications que vous apportez à votre configuration sont ensuite difficilement rectifiables directement en éditant le fichier produit par l'outil. De même, les changements effectués en dehors du mode customize, tels que ceux opérés sur le fichier .emacs, se marient assez mal avec celui-ci.

De plus, d'une version à l'autre d'Emacs, customize ne semble pas demeurer totalement rétro-compatible dans le sens où le fichier généré par customize dans une version récente risque de ne pas fonctionner correctement avec une version précédente.

Pour illustrer mon propos, je vais prendre mon exemple. J'ai un thème de couleurs grandement personnalisé. Je l'avais débuté étant sous Emacs 21, puis suis passé à Emacs 22 dès sa sortie. Je n'ai rencontré aucun problème de transfert vers la nouvelle version. Cependant, lorsque j'ai voulu prêter le fichier à quelqu'un qui était encore sous Emacs 21, celui-ci n'a pas pu le lire correctement !

Il y a peut-être une façon ninja de faire cette manipulation mais je ne suis pas au courant.

Par le fichier .emacs

Le fichier .emacs est un simple fichier contenant du texte. Simple ? pas vraiment en vérité. Le format du fichier est loin de ressembler à ce que vous avez sans doute l'habitude de voir avec d'autres configurations. La configuration d'Emacs est écrite en Lisp, plus précisément en Emacs Lisp. Si vous ne le savez pas, le Lisp est un langage de programmation à part entière !

En effet, la spécificité d'Emacs est d'être entièrement (ou presque) programmable, grâce à son langage intégré. Tout (ou presque) dans Emacs est Lisp. Les divers modes et applications dans Emacs sont codés en Emacs Lisp, et de même la configuration est écrite en Lisp.

Même lorsque vous éditez votre configuration à l'aide des menus ou de customize, Emacs retranscrit vos modifications en Lisp et les sauvegarde dans un fichier.

En réalité, le fichier .emacs est aussi appelé fichier d'initialisation car c'est simplement un programme écrit en Emacs Lisp qui est exécuté au démarrage d'Emacs.

L'intérêt de cette dernière méthode réside dans sa flexibilité ; vous pouvez presque tout faire rien qu'en écrivant du code Lisp dans votre .emacs, et même si toutes ces possibilités ne vous seront pas tout de suite utiles, c'est également l'approche qui s'adapte le mieux à une évolution vers une utilisation confirmée d'Emacs, qui implique l'apprentissage de l'Emacs Lisp.

Une approche conseillée

Vous l'aurez compris, je vous recommande chaudement de configurer votre Emacs en éditant le fichier .emacs par vous-même. Cependant, le mode customize a un usage très important : parcourir l'ensemble des paramètres disponibles pour une catégorie donnée. Pour cela, vous pouvez utiliser la commande customize-group qui vous permet d'aller directement à la configuration d'un groupe d'options particulier, dont vous devez donner le nom. Généralement, c'est le nom correspondant à l'application ou au mode que vous voulez configurer.

Par exemple, pour voir les possibilités de personnalisation offertes par ERC, le client IRC, vous exécuteriez la commande customize-group erc. Nous verrons plus loin comment mieux exploiter ces informations ; pour l'heure, vous ne pouvez sans doute que lire les descriptions d'options.

Une autre utilisation de customize que j'admets sans vraiment conseiller est la mise en place d'un thème de couleurs. Le faire sans customize est vraiment très pénible ; je l'ai fait une fois, pour mon thème de couleurs basique, pour la console, mais je crois que je ne le referai pas. Nous verrons plus loin comment changer les polices et les décorations du texte, pour créer un environnement un peu plus agréable que le look par défaut.

Premiers pasAperçu de la syntaxe Lisp

Configurer Emacs ne requiert pas de connaître parfaitement l'Emacs Lisp, mais quelques rapides notions sont toutefois recommandées pour comprendre la syntaxe des lignes d'exemples à venir.

Le Lisp est un langage possédant une syntaxe extrêmement régulière. Toutes les constructions (ou presque) prennent la forme suivante :

(OPERATEUR OPERANDE...)

Si vous avez déjà un peu programmé, sachez qu'OPERATEUR peut être aussi bien une fonction qu'une instruction spéciale (un if, un while, etc.). Sinon, retenez simplement que le premier mot dans la liste indique l'action à effectuer.

Et sans le vouloir, nous venons d'introduire la notion de liste. Une liste, c'est exactement ce que je viens de vous montrer : une suite d'éléments entre parenthèses, séparés par des blancs. Tout le code écrit en Emacs Lisp est essentiellement constitué de listes donc !

Commentaires

Tous les langages de programmation civilisés possèdent leur syntaxe pour inclure des commentaires dans le code, des lignes qui ne seront pas interprétées par Emacs. Il suffit pour cela de faire précéder le texte à commenter par un point-virgule.

;; Ceci est un commentaire. Environnement

La première chose à savoir est qu'il existe plusieurs fichiers similaires au .emacs qui contiennent divers morceaux de configuration. Principalement, on peut prendre note des fichiers suivants :

  • $HOME/.emacs.el ou $HOME/.emacs
    Votre fichier d'initialisation principal. Les fichiers de code Emacs Lisp sont habituellement nommés avec un suffixe .el mais le .emacs peut faire exception. Il existe quelques différences, mais elles ne nous gêneront pas ici et je me référerai toujours à ce fichier comme le .emacs bien que je l'ai moi-même appelé .emacs.el.

  • $PREFIX/share/emacs/site-lisp/site-start.el
    Le fichier d'initialisation global. Il joue le même rôle que le .emacs dans votre dossier personnel mais est lu avant votre .emacs. Il est souvent rempli à l'avance par votre installation dans le cas des gestionnaires de paquets, qui s'en servent pour charger des informations utiles sur les applications tierces qu'ils installent pour Emacs.

    $PREFIX est la racine où vous avez installé Emacs. Généralement $PREFIX vaut /usr ou /usr/local, mais sur certains systèmes, cela pourrait être /usr/pkg ou, si vous l'avez installé dans votre dossier personnel, $HOME/local.

  • Fichiers de configuration des applications.
    Emacs est une structure qui peut accueillir des applications (spécifiquement développées pour Emacs). Chaque application possède souvent son propre fichier qui est lu au chargement de celle-ci. Par exemple, Mew utilise $HOME/mew.el.

  • Fichiers de configuration auxiliaires.
    Vous pouvez également scinder votre .emacs en plusieurs fichiers, lorsque celui-ci deviendra relativement volumineux. Ce ne sera pas le cas aujourd'hui, aussi nous n'aborderons pas ce sujet dans cet article.

Premier réglage : le système de codage de caractères

Emacs étant avant tout un éditeur de texte, son interface ainsi que la plupart des informations qu'il lit, stocke et échange demeurent sous forme textuelle. Un réglage très global et très important est donc le système de codage par défaut.

Pour ceux d'entre vous qui ne savent pas ce qu'est un système de codage de caractères, c'est simplement la représentation numérique (« binaire ») des caractères (lettres, chiffres, symboles) qui forment le texte. Pour plus d'informations, vous pouvez consulter la page Wikipédia sur le codage de caractères.

Il existe plusieurs options pour configurer en finesse les différents codages, mais le réglage principal est obtenu par la commande set-language-environment. La syntaxe est la suivante :

(set-language-environment "NOM")

Il faut bien sûr remplacer NOM par le nom de l'environnement de votre choix. Les valeurs d'intérêt pour nous seront "UTF-8" si vous souhaitez avoir un environnement utilisant principalement l'UTF-8, ou "Latin-1" si vous voulez de l'ISO-8859-1. Les deux sont capables de représenter les caractères français ; l'UTF-8 permet en plus les caractères internationaux, provenant d'autres langues. Si vous ne savez pas pour lequel opter, je vous conseille l'UTF-8 ; la tendance actuelle va vers UTF-8 et les deux environnements de bureau dominants, à savoir GNOME et KDE, l'utilisent par défaut.

Ajoutez la ligne qui convient à votre .emacs. S'il n'existe pas, créez-le.

Organisation de vos fichiers

Votre .emacs ne contenant actuellement qu'une seule ligne, il semble superflu d'essayer de le diviser en plusieurs fichiers. Toutefois, en prévision des modifications que nous allons effectuer par le biais de customize afin de mettre en place un thème de couleurs, un petit arrangement s'impose.

Par défaut, customize s'amuse à écrire dans votre .emacs, ce qui est très mal venu, surtout si vous utilisez un gestionnaire de versions comme RCS.

Il est très simple cependant de l'instruire de sorte à ce que le contenu soit placé dans un fichier réservé, de manière civilisée. Le nom de ce fichier est donné par la variable custom-file.

Dans Emacs, une variable est l'association d'une valeur (« quelque chose ») à un nom (un symbole dans le vocabulaire emacsien).

Ici, le symbole est custom-file et la valeur est le nom du fichier.

On change la valeur d'une variable avec la forme :

(setq SYMBOLE VALEUR)

Dans notre cas, la ligne devient :

(setq custom-file "NOM-DU-FICHIER")

Remarquez que le nom du fichier est entre guillemets droits ; c'est la manière d'écrire du texte (des chaînes de caractères pour ceux qui ont quelque expérience en programmation) en Emacs Lisp.

Par exemple, vous pourriez appeler ce fichier .emacs-custom.el et le placer dans votre dossier personnel, comme ceci :

(setq custom-file "~/.emacs-custom.el")

J'ai fait exprès d'utiliser le tilde, au cas où vous douteriez qu'Emacs le reconnaisse à l'instar du shell.

La syntaxe d'affectation (changement de valeur d'une variable) est très utile pour la configuration et n'est pas propre à la variable custom-file ; beaucoup d'options sont modifiables de cette manière. J'aurais pu vous donner directement l'instruction tout entière, mais désormais vous saurez reconnaître une affectation. C'est un premier pas sur la voie du programmeur Emacs Lisp ! :)

Toutefois, dans ce cas précis, simplement changer la valeur de la variable ne suffit pas. Cette manipulation va dire à customize d'inscrire ses modifications dans le fichier, mais celui-ci ne sera pas lu par Emacs lui-même comme l'est votre .emacs (et par voie de conséquence, comme l'étaient les ajouts faits par customize à celui-ci, avant que nous ne décidions de les détourner).

Pour charger ce fichier dans la mémoire d'Emacs et l'exécuter, nous allons employer la fonction load comme ceci :

(load custom-file)

Cette ligne est bien entendu à placer après avoir donné à la variable custom-file sa valeur ; en effet, on demande ici à Emacs de lire le fichier dont le nom est donné par la variable custom-file. On aurait pu écrire :

(load "~/.emacs-custom.el")

Maintenant que nous avons eu un bref aperçu des variables, rappelez-vous customize et son utilisation en tant qu'explorateur d'options.

Dans l'interface de customize, vous trouverez beaucoup d'options de configuration ; chacune porte un nom qui, en règle générale, correspond à celui d'une variable, avec des espaces à la place des tirets et des majuscules au début des mots. L'option Ceci Est Une Option est en vérité la variable ceci-est-une-option.

La description ainsi que les menus vous donneront une petite idée des valeurs acceptables et vous pourrez modifier la variable dans votre .emacs. Remarquez que le menu offert par le bouton State vous propose de voir l'expression Lisp telle que vous pourriez vouloir l'inscrire dans votre .emacs.

Récapitulatif

Nous avons vu dans cette partie quelques réglages fondamentaux, ainsi que la syntaxe pour affecter une valeur à une variable. Votre .emacs devrait maintenant ressembler à ceci :

(set-language-environment "UTF-8") (setq custom-file "~/.emacs-custom.el") (load custom-file) Changer l'apparence d'Emacs

Ce n'est certainement pas le plus utile, mais c'est une question qui revient fréquemment : comment changer l'apparence d'Emacs ? La méthode présentée ici n'est peut-être pas la plus propre, mais c'est celle que je trouve la plus pratique, et pour quelque chose...

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Votre premier .emacs : la configuration d'Emacs pour les zéros

Prix sur demande