Vous êtes comme moi un mordu de Vim, vous tapez vos documents en RST, en Latex, ou je ne sais quel format brut. Vous avez un manque, celui d'avoir l'auto-correction orthographique et grammaticale. Je viens de me configurer mon éditeur favori pour avoir la correction des deux aspects.

Nous allons devoir installer quelques fichiers. En premier lieu, il faut récupérer les dictionnaires français de vim. La manière la plus simple est de faire:

mkdir -p ~/.vim/spell
cd ~/.vim/spell
wget http://ftp.vim.org/vim/runtime/spell/fr.latin1.spl
wget http://ftp.vim.org/vim/runtime/spell/fr.latin1.sug
wget http://ftp.vim.org/vim/runtime/spell/fr.utf-8.spl
wget http://ftp.vim.org/vim/runtime/spell/fr.utf-8.sug

Fermez vim si vous en avez déjà ouvert un. Cela permettra de s'assurer que tout soit pris en compte au démarrage.

Pour tester l'option spell, ouvrons un éditeur vim et rédigeons quelques phrases. Faites en sorte de faire des fautes, puis pressez: Echap, :set spelllang=fr spell

vim correction activé

Cela permet d'activer la langue française, puis de mettre en surbrillance les mots erronés. Toujours en mode commande (donc en ayant pressé sur Echap), allez au début du document en pressant "gg", puis "]s". Le curseur se déplace au premier mot mal orthographié. Vous avez alors plusieurs options :

  • pressez "z=" et vous entrez dans le mode "choix de mot" - taper Enter ou le numéro du mot que vous voulez utiliser.
  • presser "zg" pour ajouter le mot dans le dictionnaire local
  • presser "zG" pour l'ajouter au dictionnaire global
  • presser "]s" pour aller au prochain mot
  • presser "[s" pour aller au prochain mot

vim liste de suggestions

Ce procédé est sympa pour une phase finale, après avoir rédigé. Mais si vous voulez avoir une mode de correction en cours de frappe, il existe une autre commande. Vim permet de compléter un mot lorsque l'on s'en sert d'éditeur de code. On utilise alors CTRL+X puis une lettre correspondant à un mode de complétion.

Le mode utilisé pour "spell" est "s". Donc, après avoir tapé un mot de la mauvaise manière, il suffit, sans quitter le mode "insert", de presser CTRL+X puis "s". Une liste de propositions de mots s'affiche. Sélectionnez celui qui vous plait, puis pressez "espace" ou tout autre caractère pour continuer la rédaction. vim completion orthographique

Reste maintenant à avoir une correction grammaticale. Pour cela, nous allons utiliser un outil en Java servi dans les options d'OpenOffice, et un plugin Vim fortement bien pensé.

Commençons par l'outil Java en question. Il se nomme LanguageTool et se trouve à l'adresse: http://www.languagetool.org/

Il suffit de décompresser le fichier zip dans un répertoire de votre choix, cela va vous proposer deux fichiers, un ".jar" et un ".oxt" qui vont vous permettre la correction grammaticale. L'intégration à vim se fait avec le plugin: http://www.vim.org/scripts/script.php?script_id=3223

Suivons le procédé recommandé, on télécharge la dernière version, puis:

cd ~/.vim
unzip /chemin/vers/LanguageTool.zip

On finit par configurer l'outil en ouvrant le fichier ~/.vimrc, et en plaçant quelque part cette ligne:

:set spelllang=fr
let g:languagetool_jar='/chemin/vers/LanguageTool.jar'

En remplaçant évidemment le chemin par la bon. Je vous conseille d'utiliser un répertoire simple à retrouver, genre /usr/local/LanguageTool ou comme moi dans un répertoire utilisé pour compiler vous même l'outil. J'utilise pour ma part la version SVN que je mets à jour souvent et que je compile simplement avec "ant". Si vous éditez votre vimrc avec vim, n'oubliez pas le racourcis (en mode insert) "CTRL+X f" qui complète le chemin.

Voilà, on rouvre notre texte, et on va s'amuser. Activez si vous le souhaitez le mode "spell" en tapant: "Echap, :set spell"

Tapez avec des fautes, faites vraiment des erreurs (accords, temps, double virgule...), puis pressez: Echap, ":LanguageToolCheck" (la touche tabulation complète les commandes je vous rappelle).

Après quelques secondes, un mini buffer apparaît et vous donne une liste complète des fautes possibles que vous auriez faites, avec si possible des proposition de correction. Allez dans ce minibuffer en pressant CTRL+W w et faites défiler la liste. En pressant sur la touche Entrée votre curseur ira à la faute, ou parfois (je ne sais pas pourquoi) au début de la phrase erronée. Il suffit de les corriger au fur et à mesure. Pour nettoyer le texte des surlignages, vous pouvez simplement taper: Echap puis ":LanguageToolClean".

vim et LanguageTool

Et pour supprimer le surlignage du mode spell, Echap, ":set nospell"

Bref, voilà de quoi vous amuser à corriger la plupart de vos erreurs dans un éditeur tel que Vim. Vous prendrez vite cette habitude de lancer la commande, et de mettre le mode "spell" en marche.

Certes, il restera des erreurs parfois, à vous de relire et de ne pas vous lasser de vérifier mot à mot les coquilles possibles. Mais ces outils vont au moins permettre d'éliminer un bon paquet d'erreurs. Alors ne vous en privez pas. Personnellement j'en avais tellement assez de vous poster des billets bourrés de fautes que je suis passé à ces outils... Ne m'en voulez pas s'il en reste encore... je vous promet de faire des efforts.

Notez que LanguageTool - l'outil java - permet aussi de prendre en argument le fichier à corriger. Donc, vous pourrez vous en servir en dehors de vim ou en l'intégrant dans Emacs, Gedit, ou quelques autres éditeurs acceptant les greffons (plugins)

En espérant vous avoir fait découvrir un outil sympathique :)

Ha oui un dernier truc, comme je suis dans un terminal, et que je veux copier mon billet depuis vim vers mon navigateur, je sauve mon fichier et je fais simplement:

  • Echap
  • :!xclip %

Le fichier est alors copié dans le presse-papier, reste plus qu'à le coller dans l'éditeur (bouton central de la souris, ou Maj+Insert). On gagne du temps...