Aperç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 :
Code : Common Lisp
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.
Code : Common Lisp1 | ;; 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.
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 :
Code : Common Lisp1 | (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 :
Code : Common Lisp
Dans notre cas, la ligne devient :
Code : Common Lisp1 | (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 :
Code : Common Lisp1 | (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 :
Code : Common Lisp
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 :
Code : Common Lisp1 | (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 :
Code : Common Lisp1
2
3
4 | (set-language-environment "UTF-8")
(setq custom-file "~/.emacs-custom.el")
(load custom-file)
|