Version en ligne

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

Table des matières

Votre premier .emacs : la configuration d'Emacs pour les zéros
Comment configurer Emacs ?
Premiers pas
Changer l'apparence d'Emacs
Changer les combinaisons au clavier
Configurer Emacs pour programmer en C
Exemple final d'un fichier .emacs basique

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

Comment configurer Emacs ?

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 ?

Premiers pas

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.

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 pas

Premiers pas

Comment configurer Emacs ? Changer l'apparence d'Emacs

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 :

(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 :

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 :

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

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

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)

Comment configurer Emacs ? Changer l'apparence d'Emacs

Changer l'apparence d'Emacs

Premiers pas Changer les combinaisons au clavier

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 de secondaire tel que l'affichage, elle conviendra bien.

Changer la police d'affichage

L'interface d'Emacs est majoritairement constituée de texte, il est important de configurer une police qui vous est agréable. La police par défaut doit être monospacée, mais cela mis à part, vous pouvez utiliser n'importe quelle police supportée par les applications graphiques. Sous X cependant, la version 22 ne supporte pas encore le lissage des caractères. Je vous conseille donc de prendre une police disponible en format bitmap. Personnellement, j'utilise terminus.

Comme je l'ai indiqué auparavant, nous allons utiliser customize pour modifier les paramètres d'affichage. La commande M-x customize-face réalise cela.

Emacs vous demande alors quel type de caractères modifier. Entrez default pour personnaliser le type par défaut, dont les attributs sont hérités par tous les autres, si ceux-ci ne fournissent pas les leurs. Vous devriez alors obtenir une interface semblable à celle représentée ci-dessous :

Default face: (sample) Hide Face
   State: SAVED and set.
Basic default face.
Parent groups: Basic Faces
Choice: Value Menu
 Attributes: [X] Font Family: xos4-terminus
             [X] Width: Value Menu medium
             [X] Height: Value Menu Height in 1/10 pt: 151
             [X] Weight: Value Menu medium
             [X] Slant: Value Menu normal
             [X] Underline: Value Menu Off
             [X] Overline: Value Menu Off
             [X] Strike-through: Value Menu Off
             [X] Box around text: Value Menu Off
             [X] Inverse-video: Value Menu Off
             [X] Foreground: gray88     (sample)
             [X] Background: black      (sample)
             [X] Stipple: Value Menu None
             [ ] Inherit: *

La plupart des champs devraient parler d'eux-mêmes. En vérité, pour le type par défaut, nous ne voulons sans doute pas altérer d'autres champs que Font Family, Height, Foreground et Background. Vous pouvez obtenir une jolie liste des couleurs et leurs noms avec la commande M-x list-colors-display.

Expérimentez un peu pour obtenir ce qui vous convient. Pour appliquer vos changements, actionnez le bouton State ; les choix proposés ne posent aucune difficulté. Faites plusieurs fois Set for Current Session, puis lorsque vous êtes content de vos paramètres, choisissez Save for Future Sessions.

Cette manipulation est réalisable pour n'importe quel type ; pour avoir accès à la liste complète, validez sans fournir de nom, lors de l'invite offerte par M-x customize-face. Veuillez prendre note du fait que seuls les types existants seront ainsi disponibles. En particulier, si vous souhaitez personnaliser un module particulier, il faudra le charger avant d'utiliser M-x customize-face. La plupart des modules se chargent automatiquement lorsque vous tentez d'accéder à un de leurs modes.

Si vous voulez changer la manière dont s'affichent les titres sous le mode LaTeX, tentez de visiter un fichier LaTeX avant d'utiliser M-x customize-face.

Composants de l'interface

Après ce petit intermède avec customize, revenons à l'édition de notre .emacs.

Par défaut, Emacs affiche beaucoup de composants sans grand intérêt dans son interface : un menu, une barre d'outils et même des barres de défilement, mais oublie certaines informations importantes telles que le numéro de la colonne à laquelle le curseur se situe. Nous allons au plus vite remédier à cela.

Le menu, les barres d'outils et de défilement peuvent être supprimés avec les instructions suivantes :

(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)

L'affichage du numéro de la colonne est obtenu par l'instruction :

(column-number-mode t)

Le tout est bien sûr à placer dans votre .emacs, à la suite des changements précédents. Voilà déjà quelques lignes de gagnées dans votre espace de travail !

Autres paramètres d'affichage

Terminons notre petit tour d'horizon de la configuration de l'interface d'Emacs par quelques options que vous pourriez vouloir et qui adressent chacune un aspect différent de l'affichage d'Emacs.

  1. La première est truncate-partial-width-windows. Par défaut, Emacs replie automatiquement les lignes de texte dans les fenêtres en plein écran, mais si vous décidez de partager horizontalement votre Emacs en deux fenêtres côte à côte, vous vous apercevrez qu'Emacs tronque à présent les lignes trop longues. Pour empêcher cela, il faut changer la valeur de la variable truncate-partial-width-windows de t (qui signifie « vrai » en termes booléens) à nil (qui signifie « faux »).

    (setq truncate-partial-width-windows nil)

    Emacs possède de même tout un tas de paramètres qui vous permettent de changer la manière dont il affiche les éléments. N'hésitez pas à fouiller pour en trouver d'autres !

    Mentionnons par exemple un petit réglage de confort : la variable ring-bell-function. Elle vous permet de spécifier une fonction à appeler au lieu de faire sonner la petite alarme (qui fait « bip ») interne de votre ordinateur. Il y a plusieurs valeurs possibles, mais un choix convenable est le suivant :

    (setq ring-bell-function 'ignore)

    La fonction ignore ne fait rien ; du coup, vous n'aurez plus droit à ces alarmes que personnellement je trouve perturbatrices.

  2. En deuxième, regardons comment on peut avoir l'heure tout en restant dans Emacs. Cela fait partie des nombreux gadgets (mais qui peuvent s'avérer utiles ; en l'occurrence, j'aime avoir l'heure dans Emacs) disponibles sous Emacs.

    Pour activer l'affichage de l'heure dans la barre de modes, inscrivez la ligne suivante dans votre .emacs :

    (display-time-mode t)

    Vous l'aurez peut-être remarqué, nous avons déjà vu plusieurs fonctions dont le nom se termine par -mode. Ici, ce sont des modes mineurs globaux. En d'autres termes, ce sont des fonctionnalités que vous pouvez activer ou désactiver. À la différence des variables, les modes fonctionnent dans une optique plus binaire : un mode est actif ou il ne l'est pas. Les variables, quant à elles, permettent de spécifier des valeurs particulières pour contrôler certains aspects du fonctionnement d'Emacs.


Premiers pas Changer les combinaisons au clavier

Changer les combinaisons au clavier

Changer l'apparence d'Emacs Configurer Emacs pour programmer en C

Maintenant que vous savez comment configurer l'apparence d'Emacs, nous allons nous intéresser aux combinaisons au clavier. Emacs étant un éditeur « orienté clavier », tout peut se faire au clavier. Mais cela signifie aussi qu'il est important d'avoir des raccourcis pratiques.

Notations des combinaisons dans Emacs

Si vous avez un minimum d'expérience sous Emacs vous le savez déjà, mais la notation des combinaisons de touches sous Emacs n'est pas la même que sous d'autres environnements. Chaque touche modificatrice (Ctrl, Alt, etc.) est représentée par une lettre et une combinaison est notée Mod-ResteMod est la lettre correspondant à la touche modificatrice et Reste est une combinaison.

Les correspondances sont les suivantes :

Shift

S

Ctrl

C

Meta (ou Alt)

M

Par exemple, C-a est obtenu en maintenant Ctrl et en appuyant sur a, et C-M-f est la combinaison de Ctrl, Alt et f sur un clavier français usuel.

Combinaisons réservées

Emacs possède des conventions quant aux combinaisons que vous pouvez utiliser et à celles qui sont réservées à différentes parties de l'éditeur.

Il vous faut simplement retenir que vous êtes autorisé à créer des raccourcis débutant par C-c suivi d'une lettre pour vos besoins personnels, en tant qu'utilisateur. Les autres combinaisons commençant par C-c sont réservées aux modes majeurs et mineurs (ce n'est pas important si vous ne savez pas bien ce que sont les uns et les autres) et les autres espaces sont pris par Emacs lui-même ou des composants spécialisés.

Fonctions, commandes et combinaisons

Pour pouvoir associer des commandes aux combinaisons de touches, il faut d'une part savoir comment noter la combinaison et d'autre part connaître la fonction à lui associer.

Pour Emacs, chaque combinaison de touches invoque une commande (encore appelée fonction interactive). Une commande est une fonction, c'est-à-dire, dit simplement, une suite d'actions à effectuer, soit écrite en Emacs Lisp, soit écrite en C et connue nativement d'Emacs. Mais toutes les fonctions ne sont pas des commandes. Il faut en effet qu'elles soient prévues pour être appelées de manière interactive, par l'utilisateur. Toute fonction qui peut être appelée viaM-x NOM-DE-LA-FONCTION est une commande ; le but de cette section est de vous permettre d'éviter d'avoir à taper le nom de la commande à chaque fois, en lui associant un raccourci clavier.

La fonction global-set-key

C'est la fonction permettant d'attacher une combinaison de touches à une commande, au niveau global, c'est-à-dire disponible partout dans Emacs. La syntaxe est la suivante :

(global-set-key COMBINAISON COMMANDE)

COMBINAISON est une séquence de touches. La manière la plus simple de l'écrire est d'utiliser la fonction kbd comme ceci :

(kbd DESCRIPTION)

DESCRIPTION est alors la description de touches telle qu'elle a été présentée ci-dessus, entre guillemets droits. Par exemple :

(kbd "C-c g")

Le tout est à mettre à la place de COMBINAISON.

COMMANDE est, dans sa forme la plus simple, et la seule que nous verrons dans cet article, le nom d'une fonction précédé d'une apostrophe ; par exemple : 'replace-string.

Imaginons que vous vouliez attacher la commande replace-string à la combinaison C-c h. Vous pourriez écrire la ligne suivante dans le .emacs :

(global-set-key (kbd "C-c h") 'replace-string)

Dorénavant, lorsque vous rencontrerez une commande intéressante sur un wiki, un blog, ou dans le .emacs de quelqu'un d'autre, vous saurez comment l'affecter aux touches de votre choix !

Quelques commandes utiles qui ne demandent qu'à être affectées

Commande

Description rapide

replace-string

Remplace un texte par un autre dans le buffer.

replace-regexp

Pareil que replace-string avec une regexp.

bury-buffer

Cycle parmi vos buffers.

kill-this-buffer

Détruit le buffer et ferme le fichier.

compile

Invoque make pour compiler vos fichiers sources.

gdb

Invoque gdb pour déboguer vos programmes.


Changer l'apparence d'Emacs Configurer Emacs pour programmer en C

Configurer Emacs pour programmer en C

Changer les combinaisons au clavier Exemple final d'un fichier .emacs basique

Si vous avez lu et appliqué mes instructions jusqu'ici, votre Emacs devrait être suffisamment configuré pour l'édition de fichiers de texte. La plupart des utilisateurs d'Emacs le sont cependant pour leurs besoins en matière de programmation. Aussi, cette avant-dernière section adresse quelques points de configuration d'Emacs pour pouvoir écrire du C dans de bonnes conditions.

D'autres modes de langages de programmation ont des paramétrages semblables, mais il n'y a pas de règle vraiment générale. Il vous faudra lire les manuels correspondants.

Style d'indentation

L'une des fonctionnalités les plus appréciées d'Emacs est sa capacité à indenter intelligemment le code selon le contexte. Le mode d'édition du C, notamment, possède un indenteur relativement performant. Cependant, par défaut, celui-ci suit les règles de présentation du GNU. Si comme moi cela vous contrarie fortement, il est aisé de changer de style. La variable c-default-style contient le nom du style à utiliser, sous forme d'une chaîne de caractères (entre guillemets). Les valeurs habituelles sont les suivantes :

"k&r"

Le style K&R, aussi appelé style kernel.

"bsd"

Le style Allman, aussi appelé style BSD.

"whitesmith"

Le style Whitesmiths.

"gnu"

Le style GNU, celui par défaut.

Par exemple, si vous utilisez le style K&R, vous écrirez :

(setq c-default-style "k&r")

Pas d'indentation, espaces et tabulations

En plus du style, il y a également une histoire de pas (ou largeur) d'indentation. Par exemple, par défaut, Emacs indente vos blocs de 4, en style K&R. Personnellement, j'utilise un pas de 8. Cela est obtenu en changeant la valeur de la variable c-basic-offset. Pour moi :

(setq c-basic-offset 8)

De plus, la variable indent-tabs-mode contrôle l'usage des tabulations pour l'indentation. C'est une variable booléenne. Une valeur vraie (t) signifie que les tabulations seront utilisées dès que possible tandis qu'une valeur fausse (nil) obligera Emacs à n'utiliser que des espaces pour indenter. Par défaut, elle vaut t. Je vous laisse deviner l'instruction à placer dans votre .emacs si vous voulez des espaces !

Autres options

Le mode C étant l'un des plus populaires, il possède son lot de paramètres intéressants ou obscurs que je vous laisse découvrir en compagnie de la documentation. Vous pourriez vouloir personnaliser un peu plus le style d'indentation en modifiant la variable c-offsets-alist. Je ne détaillerai pas son fonctionnement ici, mais n'hésitez pas à consulter mon .emacs pour un petit exemple.

Avec tout cela, l'édition du code C devrait maintenant être tout à fait satisfaisante. Ainsi, votre Emacs devrait maintenant être relativement complet pour un début. Cet article s'achève ici et je vous laisse comparer le résultat de votre apprentissage avec un exemple de fichier .emacs écrit d'après ce tutoriel.


Changer les combinaisons au clavier Exemple final d'un fichier .emacs basique

Exemple final d'un fichier .emacs basique

Configurer Emacs pour programmer en C

;; Environnement
(set-language-environment "UTF-8")

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

;; Affichage
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)

(column-number-mode t)

(setq truncate-partial-width-windows nil)
(setq ring-bell-function 'ignore)

(display-time-mode t)

;; Raccourcis
(global-set-key (kbd "C-c h") 'replace-string)
(global-set-key (kbd "C-c j") 'replace-regexp)
(global-set-key (kbd "C-c o") 'bury-buffer)
(global-set-key (kbd "C-c k") 'kill-this-buffer)
(global-set-key (kbd "C-c c") 'compile)
(global-set-key (kbd "C-c g") 'gdb)

Voilà voilà, le tuto est terminé. Vous devriez normalement être capable de comprendre la plupart des configurations de base pour Emacs que vous pouvez trouver un peu partout sur Internet, en regardant dans l'aide la description des fonctions et des variables que vous voyez dans le code. La prochaine étape, si vous êtes motivé, est d'apprendre l'Emacs Lisp !


Configurer Emacs pour programmer en C