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

Quelques contributions


  • 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

Liens


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
© 2001 ArSuniK. Tous droits réservés.
Contenu revu le 13 mars 2010