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.
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.")
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") ))
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.
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 :
Ctrl-Spc
(mark-set-command),Meta-x ispell-region
.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 :
Meta-x ispell-continue
,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.
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.' !).
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)
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 :