Configuration d'Emacs et quelques bibliothèques utiles
Contenu de cette page

Vous trouverez ici quelques renseignements pour personnaliser
votre Emacs ainsi que quelques bibliothèques
utiles et des liens divers. Ce document n'est pas
un manuel pour débuter sous Emacs ni un cours de lisp.
Il explique simplement comment configurer Emacs.
Au démarrage, Emacs lit le fichier "~/.emacs", fichier écrit en
emacs-lisp. Les commentaires sont les lignes précédées
d'un ";", Les instructions sont placées entre parenthèses.
Voici quelques exemples :
; positionnement de la variable "toto" à 1
; Equivalent de toto=1 en langage C
(setq toto 1)
Pour exécuter du code Emacs, se placer sur l'instruction et taper
C-M-x . ON peut aussi se placer à la fin de
l'instruction et taper C-x C-e . Ces touches sont
accessibles depuis le
menu Emacs-Lisp. On peut aussi charger un buffer entier (cf le menu).
Charger des bibliothèques

Pour charger des bibliothèques, on peut utiliser la fonction
load
Exemple: (load "accent") .
Le mieux est de mettre les bibliothèques dans un répertoire particulier,
par exemple, dans "~/emacs". Ensuite, pour ne pas avoir à taper le
chemin ("~/emacs") à chaque fois, on peut ajouter la ligne suivante au
début du ".emacs" :
(setq load-path (cons "~/emacs" load-path))
Il est préférable, quand c'est possible, de ne pas charger toute les
bibliothèques au
démarrage (ça ralentit le chargement de emacs...). Pour cela, on peut
utiliser la
commande autoload qui indique à Emacs ou se trouve une fonction
: (autoload 'fct "fic")
quand Emacs aura besoin de la fonction fct , il chargera
tout seul le fichier fic.el (ou fic.elc ).
Il est possible de générer automatiquement tous les autoload définit
dans fichier .el.
Les Touches

Affectation des touches
Pour savoir quelle fonction est exécutée par une
touche : taper [F1] [c]
(describe-key-briefly ) ou
[F1] [k] (describe-key ) puis la touche.
Pour modifier les affectations de touche, on peut utiliser la fonction
global-set-key .
Exemple : (global-set-key [(meta g)] 'goto-line)
Pour connaître toutes les affectations de touche : [F1] b
Pour afficher toutes les affectations aprés un suffixe : [F1]
(exemple : C-x [F1] ).
Utilisation de global-set-key :
(global-set-key touche 'fonction)
Voici quelques exemples de touches :
[(control a)] C-a
[(control shift a)] C-S-a
[(control x) (control j)] C-x C-j
[(home)] Home
[(f4) (k)] F4 k
Il existe d'autres syntaxes mais celle-ci est la plus lisible.
Des touches plus conviviales
La question que se posent tous les gens qui découvrent Emacs...
Pour avoir des touches plus habituelles (DEL, HOME, END, sélection avec
Shift-fléche...), placer la ligne suivante au début du .emacs :
(pc-select-mode)
Les Couleurs sous Emacs
Voici un exemple de configuration : couleur.el (3Ko).
On peut aussi modifier certaines couleurs avec les ressources X.
Ressources

Quelques options pour le .Xresources (ou le .Xdefaults) :
/** Configuration de Emacs **/
emacs*font: -*-courier-medium-r-*-100-100-100-*
emacs*verticalScrollBars: off/* Pas de barre verticale*/
emacs*menuBar: off/* Pas de barre de menu*/
/* Couleur du fond (pratique pour plusieurs frames) */
emacs*background: couleur
emacs*geometry: 80x58+160+50
/* Utilise l'icone "emacs" par défault */
emacs*bitmapIcon: true
/* Menu (Ctrl | Shift + bouton souris) */
emacs*popup*Font: font
emacs*popup*Foreground: couleur
emacs*popup*Background: couleur
/* Barre de menu */
emacs*menubar*Font: font
emacs*menubar*Foreground: couleur
emacs*menubar*Background: couleur
/* fenêtre (question) */
emacs*dialog*Foreground: couleur
emacs*dialog*Background: couleur
/* Pour Emacs 21 */
Emacs*toolBar: 0/* pas de barre d'outil */
/* La barre de status */
Emacs.mode-line.attributeBackground: couleur
Emacs.mode-line.attributeForeground: couleur
/* Les barres verticales à gauche et à droite */
Emacs*fringe*attributeForeground: couleur
Emacs*fringe*attributeBackground: couleur
/* size of the margin of the menu bar */
Emacs.pane.menubar.margin: 0

- Utilisation de la molette wheel.el (7Ko)
Permet de paramètrer l'action de la molette
Ex : Molette -> défilement line précédente /suivante
Ctrl Molette -> défilement page précédente /suivante
Installation : rajouter (require 'wheel) dans le .emacs.
- Sélection des buffers buffer-select.el (4Ko)
Pour sélectionner un buffer, il y'a le classique C-x b ou
la séléction à la souris (C-bouton1 ).
Voici quelques fonctions qui permettent de "swaper" les buffers.
Par défaut, les combinaisons de touches Meta-Droite et
Meta-Gauche
changent de buffer en oubliant les buffers "* scratch *" et autres.
Il faut utiliser Meta-Shift-Droite et
Meta-Shift-gauche pour avoir tous les buffers.
- Impression : création de Postscript psprint.el (2Ko)
Il est possible d'imprimer directement sous Emacs avec la fonction
ps-print-buffer-with-faces [fichier_résultat] . Cette fonction
conserve l'affichage du buffer : mots soulignés, en gras, en italique...
Elle affiche par défault une entête avec diverses information
(la première ligne de cette entête est en gras).
La bibliothèque psprint.el permet d'imprimer dans un fichier le
buffer courant.
C'est trés pratique pour imprimer des sources :
il suffit de créer tous les .ps et de faire ensuite
lp *.ps .
Pour utiliser cette bibliothèque, il faut rajouter les lignes
suivantes dans le .emacs :
;;; impression avec la couleur
(autoload 'psprint "psprint")
(autoload 'psprint-all "psprint-all")
(global-set-key [f8 ?i] 'psprint)
(global-set-key [f8 ?p] 'psprint-all)
La fonction psprint utilise le buffer courant. La
fonction psprint-all applique la fonction
psprint sur tous les buffers ouvert.
- Les accents comme sous word accent-win.el (3Ko)
Ce mode permet d'entrer les accents comme sous word (ctrl-accent
lettre ) avec un clavier qwerty.
Par exemple, on obtient un "à" en tapant [Ctrl-`]
[a] . Ces touches sont automatiquements actives par défault (et
dans tous les buffers).
Rajouter dans le .emacs :
;; Les accents comme sous word
(load "accent")
- config-mode.el (2Ko) : un mode pour l'édition des fichiers
de configuration qui utilisent le caractère "#" comme début de
commentaire.
- resource-mode.el (4Ko) : un mode pour l'édition du
.Xresources (ou du .Xdefaults).
- xmodmap-mode.el (3Ko) : un mode pour l'édition du fichier
.xmodmaprc.
- wm-mode.el (2Ko) : un mode pour l'édition du .twmrc ou du
.ctwmrc.
- chip-mode.el (11Ko) : un mode pour l'édition de fichiers prolog
créé pour l'interpréteur chip.
- jkb-mode.el (16Ko) : un mode pour l'édition des listes de
fichiers musicaux (extension
.m3u ).
- accent-html.el (6Ko) : un mode qui permet d'éditer les
fichiers HTML en remplaçant de façon transparente pour l'utilisateur
la plupart des caractères spéciaux &cara;. Par exemple,
"à" sera remplacé par "à" à l'ouverture du fichier mais
lors de l'enregistrement, on conservera bien le "à" dans le
fichier.
- doc-bot.el (3Ko) : Un mode qui permet de faire venir le
docteur du
M-x doctor sur irc...
- asn1-mode-2.5.tgz : le mode ASN.1 dont je m'occupe
toujours. Disponible sur
http://asn1.elibel.tm.fr/
Utilisation de mode sous Emacs

Afin de ne pas ralentir le chargement d'Emacs, il est possible
définir des fonctions et de charger les fichiers correspondants
uniquement lors du premier appel de la fonction :
(autoload FUNCTION FILE &optional DOCSTRING INTERACTIVE TYPE)
Define FUNCTION to autoload from FILE.
Exemple: définition de la fonction asn1-mode contenu dans
le fichier asn1-mode.el ou asn1-mode.elc :
(autoload 'asn1-mode "asn1-mode" "Le mode ASN.1" t)
Il est possible de générer automatiquement les autoload.
Ce Makefile-autoload (1Ko) crée un fichier myloaddefs.el qui
contient tous les "autoload" trouvés dans le répertoire courant et les
sous-répertoires.
NB: Les fonctions qui peuvent être définies à l'aide d'un autoload
sont en principes précédées de la ligne :
;;;###autoload

- Un petit tutorial de Benjamin Drieu
- http://www.april.org/groupes/doc/emacs/emacs.html
- Petit guide pour Emacs
- http://dgrwww.epfl.ch/LEAO/emacs/petit_guide.html
- Emacs wiki
- http://www.emacswiki.org/cgi-bin/wiki
- Introduction simpe à Emacs
- http://p.karatchentzeff.free.fr/freesoft/emacs/html/index.html
- Emacs
- http://www.gnu.org/software/emacs/
- XEmacs
- http://www.xemacs.org/
- (Linux-France) Emacs : Introduction, Manuel ,FAQ , Tutorial...
- http://www.linux-france.com/article/appli/emacs/index.html
- Gnus Frequently Asked Questions
- http://www.ccs.neu.edu/software/contrib/gnus/
- Emacs Lisp List : Une liste de mode Emacs
- http://www.anc.ed.ac.uk/~stephen/emacs/ell.html
- Emacs Timeline : Une page d'histoire sur Emacs.
- http://www.jwz.org/doc/emacs-timeline.html
|