Page suivante Page précédente Table des matières

5. Ispell

Si vous désirez vérifier l'orthographe de votre document directement depuis Emacs, vous pouvez utiliser la distribution Ispell et son mode associé sous Emacs.

5.1 Configuration initiale

Tout d'abord, ajoutez ces lignes à votre .emacs pour configurer Emacs :

      (autoload 'ispell-word "ispell"
         "Check the spelling of word in buffer." t)
      (global-set-key "\e$" 'ispell-word)
      (autoload 'ispell-region "ispell"
         "Check the spelling of region." t)
      (autoload 'ispell-buffer "ispell"
         "Check the spelling of buffer." t)
      (autoload 'ispell-complete-word "ispell"
         "Look up current word in dictionary and try to complete it." t)
      (autoload 'ispell-change-dictionary "ispell"
         "Change ispell dictionary." t)
      (autoload 'ispell-message "ispell"
         "Check spelling of mail message or news post.")
      (autoload 'ispell-minor-mode "ispell"
         "Toggle mode to automatically spell check words as they are typed in.")
      

5.2 Le choix de vos dictionnaires par défaut

Vous pouvez configurer Emacs pour qu'à l'ouverture d'un fichier, celui-ci choisisse automatiquement quels dictionnaires utiliser. Vous pouvez en effet utiliser plusieurs dictionnaires. Le premier et sûrement le plus important est le dictionnaire principal, distribué avec Ispell. Vous avez le choix entre plusieurs langues. Le deuxième est votre dictionnaire personnel, celui où Ispell ajoutera les mots qu'il n'aura pas trouvé dans le premier dictionnaire mais que vous lui aurez indiqué de garder.

Voici les lignes à insérer à votre .emacs si vous désirez utiliser par défaut le dictionnaire français distribué avec Ispell, et placer votre dictionnaire personnel dans un fichier .ispell-dico-perso dans votre répertoire racine.

       (setq sgml-mode-hook
      '(lambda () "Défauts pour le mode SGML."
      (setq ispell-personal-dictionary "~/.ispell-dico-perso")
      (ispell-change-dictionary "francais")
       ))
       

5.3 Choix des dictionnaires pour un certain fichier

Un petit problème se pose si vous ne vérifiez pas toujours des textes dans la même langue. Et si vous traduisez des documents, il est probable que vous passiez d'une langue à l'autre assez souvent.

Je ne connais pas de moyen en Lisp de choisir, soit automatiquement, soit en un click de souris, les dictionnaires principaux et personnels associés à la langue utilisée dans le fichier en cours. (Si vous en connaissez un, faites-moi signe !)

Mais il est possible d'indiquer quels dictionnaires vous voulez utiliser pour ce fichier (et seulement celui-là). Il suffit de les rajouter en commentaire, à la fin du fichier, pour qu'Ispell puisse les lire en lançant une vérification :

      <!-- Local IspellDict: english -->
      <!-- Local IspellPersDict: ~/emacs/.ispell-english -->
     

Si vous avez défini dans votre .emacs que vos dictionnaires par défaut seront français, vous pouvez alors ajouter ces lignes à chaque fin de fichier dont le texte est en anglais.

5.4 Vérifier votre document

Pour lancer la vérification de votre document en intégralité, utilisez, depuis n'importe où dans votre document Meta-x ispell-buffer. Vous pouvez aussi lancer la vérification sur une région seulement du document :

Emacs lance alors Ispell. Si ce dernier trouve un mot qu'il ne connait pas, il vous indique ce mot (normalement en surbrillance) et vous demande de presser une touche :

Si Ispell trouve un ou plusieurs mots ressemblant à celui qu'il ne connait pas, il vous les indique dans une petite fenêtre, chacun précédé d'un chiffre. Il suffit de presser un de ces chiffres pour corriger le mot mal orthographié par le mot correspondant.

5.5 Dictionnaire personnel contre dictionnaire local au fichier

La touche i permet d'insérer un mot dans le dictionnaire personnel, alors que la touche A permet d'insérer un mot dans le dictionnaire local au fichier.

Le dictionnaire local au fichier est une suite de mots insérés à la fin du fichier, sous forme de commentaires, et qui est relu par Ispell chaque fois que vous le lancez sur ce fichier. Cela permet d'accepter certains mots, valables dans ce fichier, mais qui ne le seraient pas dans d'autres.

A mon avis, il est préférable que le dictionnaire personnel soit réservé aux mots que le dictionnaire principal ne connait pas mais qui font vraiment partie de la langue (comme les mots composés), plus certains mots n'appartenant pas à la langue ou noms propres qui reviennent dans un grand nombre de fichiers (comme Linux) et ne ressemblant pas trop à un mot du dictionnaire principal : l'ajout par exemple de certains noms et prénoms de personnes dans le dictionnaire personnel peut être dangereux, car ils ressemblent parfois à un mot de la langue (imaginez qu'il ne trouve pas de fautes dans la phrase : `Ted en est l'effet au phil du temps.' !).

5.6 La vérification `à la volée'

Ispell peut aussi vérifier l'orthographe au fur et à mesure que vous tapez votre document. Il faut utiliser pour cela le mode ispell-minor-mode. Lorsque vous désirez lancer ou arrêter ce mode de vérification, tapez Meta-x ispell-minor-mode. Ispell vous envoie alors un bip chaque fois que vous tapez un mot qu'il ne connait pas.

Si ces bip à répétition vous ennuient (ou si votre voisin de palier dort !), vous pouvez les remplacer par un flash de l'écran, en tapant Meta-x set-variable RET visible-bell RET t RET. Ou ajoutez cette ligne à votre .emacs pour faire taire Emacs à tout jamais :

       (setq visible-bell t)
      

5.7 Saut de régions

Il est possible de ne pas vérifier votre document en intégralité, en sautant quelques régions bien spécifiques. En effet, vous voudrez sûrement ne pas vérifier l'orthographe de vos balises SGML. Pour cela, ajoutez la ligne suivante à votre .emacs :

      (setq ispell-skip-sgml t)  
     

Une version Beta du 20 Mars 98 du fichier ispell.el est disponible à l'adresse http://kdstevens.com/~stevens/ispell-page.html. Cette version étend les régions SGML à sauter. En effet, la version d'ispell.el fournie avec Emacs permet seulement de sauter les tags SGML, de la forme <tt> ou </tt>.

Cette version Beta permet de sauter également les régions entre :


Page suivante Page précédente Table des matières