Emacs 101 - la configuration

Un apsect essentiel et extrèmement puissant d’Emacs, est sa capacité à être personnalisé et à être étendu en fonctionnalité. La configuration et l’ajout de nouvelles fonctions se fait avec un langage de programmation qui s’appelle le Emacs lisp ou elisp. Les fichiers écris en elisp se termine par l’extension .el.

Au démarrage, Emacs vérifie si il existe des fichiers elisp qui lui indiquerait des particularités d’initialisation dont il doit tenir compte. Pour se faire il va chercher si un des fichiers suivants existent à la racine du répertoire utilisateur : ~/.emacs, ~/.emacs.el, ou ~/.emacs.d/init.el. C’est dans ce fichier que l’on doit indiquer au programme nos préférences d’utilisation.

Vous pouvez choisir la forme de fichier de configuration qui vous plaira, mais la dernière forme est considérée comme faisant partie des bonnes pratiques, car elle permet de regrouper en un seul répertoire tous les fichiers nécessaires à la personnalisation d’Emacs. D’ailleurs le répertoire .emacs.d est généré par défaut, donc il ne vous reste plus qu’à y ajouter votre fichier init.el.

Création du fichier init.el

Tout d’abord, rappelons que C- correspond à la touche Ctrl et que M- correspond à la touche Alt. Donc C-k est semblable à Ctrl + k.

Nous allons maintenant créer le fichier init.el qui nous permettra de personnaliser Emacs à votre convenance :

  1. Ouvrir Emacs.
  2. Exécuter la commande C-x C-f (ouvrir ou créer un fichier).
  3. Le pointeur est déplacer vers le minibuffer, où il est indiqué “Find file: ~/”.
  4. Écrivez alors .emacs.d/init.el puis tapez sur Entrée. Si vous vous êtes trompé ou que vous ne comprenez pas ce qui se passe, faîtes C-g pour sortir du minibuffer et recommencez.
  5. Si tout c’est bien passé, vous avez basculé vers un nouveau fichier vierge et le pointeur n’est plus dans le minibuffer.
  6. Faîtes C-x C-s pour enregistrer init.el sur le disque.

Dès lors nous sommes en mesure de commencer notre personnalisation de Emacs.

Nos premières modifications

En démarrant Emacs vous avez peut-être remarqué que le programme s’ouvrait avec une page de bienvenue et que la marge ne contenait pas de numéros de ligne. Nous allons donc changer ces deux paramètres pour commencer; car vous l’avourez, c’est bien pratique des numéros de ligne lorqu’on écrit du code et la page de bienvenue n’est pas très jolie ;)

Ajouter les numéros de ligne

Pour ajouter des numéros dans la marge, ajoutez les deux lignes de code suivantes à votre fichier init.el.

;; Add line numbers
(global-linum-mode 1)

La première ligne est simplement un commentaire pour indiquer quel est le rôle de la ligne suivante. D’ailleurs je vous conseille de toujours commenter ce que vous faîtes dans votre fichier de configuration personnel; il sera alors plus facile de vous y retrouver au fil du temps.

La deuxième ligne, vous l’aurez deviné, est une instruction qui indique à Emacs d’afficher les numéros de ligne dans la marge.

Pour voir les changements immédiatement, tapez M-x load-file, puis faîtes Entrée. Cette commande réexécutera votre fichier init.el. Sinon vous devez redémarrer le programme pour que la nouvelle instruction soit effective.

Surligner la ligne courante

;; Highlight Current Line
(global-hl-line-mode +1)

Retirer la barre de défilement (scroll)

;; Disable scroll bars
(scroll-bar-mode -1)

Changer la page d’accueil

Pour remplacer l’écran de démarrage par un autre buffer, il faut d’abord désactiver la valeur par défaut et ensuite indiquer avec quoi nous voulons le remplacer :

;; Remove splash screen on startup
(setq inhibit-splash-screen t)
;; Have dired open instead
(dired "~/")

Vous les aurez reconnus, la première et la troisième ligne sont des commentaires qui annonces ce que nous allons modifier et/ou ajouter.

La deuxième ligne elle, change la valeur par défaut de la variable inhibit-splash-screen à t (vrai en elisp) qui par défaut est à nil (nul en elisp). Le nom de cette variable se traduirait par «empêcher l’écran de démarrage».

Avec la quatrième ligne nous indiquons à Emacs d’ouvrir le répertoire utilisateur (~/) dans le gestionnaire de fichier (dired). Vous pouvez ainsi ouvrir le dossier de votre choix ou vous pourriez ouvrir directement un fichier avec la fonction find-file au lieu de la fonction dired :

;; Remove splash screen on startup
(setq inhibit-splash-screen t)
;; Have a file instead
(find-file "~/.bashrc")

Installer des extensions avec le gestionnaire de paquet

Depuis la version 24 un gestionnaire de paquets est inclu par défaut. Le but de ce gestionnaire est de faciliter l’intallation, l’utilisation et la mise à jour d’extensions, de thèmes, de mode pour Emacs.

Pour afficher le gestionnaire de paquets vous devez taper la commande M-x package-list, puis faire Entrée. Le buffer *Packages* s’ouvrira; celui-ci est un tableau contenant l’archive par défaut qui porte le nom de ELPA. Pour avoir la description complète d’un paquet déplacez le curseur vis-à-vis celui-ci, puis appuyez sur Entrée. Pour marquer un paquet à installer faîtes i; pour compléter l’installation ou tout autre action appuyez sur la touche x.

Ajouter des archives

ELPA, c’est bien, mais il ne contient pas tout ce qui pourrait nous intéresser. Donc pour étendre l’offre des paquets il faut ajouter des archives à notre gestionnaire! Et MELPA et Marmalade sont deux des archives les plus fréquenter et fréquentables du moment.

Ce qui nous ramène donc à notre fichier init.el … À la fin de celui-ci coller le bloc de code suivant :

(when (>= emacs-major-version 24)
  (require 'package)
  (package-initialize)
  (add-to-list 'package-archives '("melpa-stable" . "http://melpa-stable.milkbox.net/packages/") t)
  (add-to-list 'package-archives '("marmalade" . "https://marmalade-repo.org/packages/"))
  )

D’abord avec when nous vérifions que la version de Emacs est bien supérieur ou égal à la version 24. Ensuite nous importons le gestionnaire de paquets avec require, puis nous initialisons celui-ci. Dès lors nous pouvons ajouter des archives supplémentaires avec add-to-list.

Encore une fois, pour voir les changements immédiatement nous devons tapez M-x load-file, puis faire Entrée. Pour vérifier que les nouvelles archives sont bien chargées dans le gestionnaire de paquets il suffit de l’ouvrir (M-x package-list) et de regarder sous la colonne Archive si il y a les termes melpa-stable et marmalade qui apparaissent çà et là. Sinon il faut redémarrer Emacs et revérifier à nouveau.

Vous remarquerez que la liste des paquets s’est grandement apprécié de plusieurs dizaines d’items supplémentaires.

Mofication du thème : décore ta vie !

La dernière configuration que nous ferons aujourd’hui en est une de la plus haute importance : la mofification du thème graphique de Emacs ! D’autant plus que, maintenant grâce aux archives MELPA et Marmalade, nous avons accès à moulte nouveaux thèmes.

Vous pouvez parcourir Packages à la recherche de thèmes; pour se faire vous pouvez utiliser I-search (C-s) avec le mot clé theme.

Une fois votre theme télécharger vous pouvez l’utiliser avec la commande M-x load-theme. Le mini-buffer vous demandera alors le nom du thème à charger. Si vous ne vous en souvenez plus appuyez sur la touche Tab pour obtenir la liste des options disponibles.

Pour charger votre nouveau thème au démarage de Emacs il suffit de lancer la fonction load-theme dans votre fichier de configuration init.el. Disons que le thème installer par le gestionnaire de paquet est cyberpunk, vous indiquerez donc ceci :

;; Theme
(load-theme 'cyberpunk t)

Si ne voulez pas y aller à l’aveugle en installant et chargeant un par un les thèmes qui se trouvent dans Packages, vous pouvez aller sur le site web Emacs Themes pour magasiner votre thème. C’est normalement indiquer si votre choix est disponible dans MELPA ou un autre archive.

Conclusion

Dans le prochain billet je parlerai du comment configurer GNU Emacs pour faire du dévloppement web.

Autre billet de cette série :