Correction orthographique sous vim

Suite à un message sous irc, je me suis intéressé à la correction orthographique sous vim, module qui est intégré par défaut depuis la version 7 (sauf erreur de ma part).

Afin que ça fonctionne, on a besoin, en plus de vim, de aspell et des dictionnaires que l’on va utiliser. Ces derniers n’étant pas installés par défaut (pas assez cherché pourquoi), il faut soit les générer (le fichier /usr/share/vim/spell/README.txt explique comment) ou tout simplement les télécharger depuis le ftp de vim.

Installation

Selon ce que vous êtes habitués à faire (ou votre besoin), vous pouvez installer les fichiers dans les répertoires systèmes, ou le répertoire personnel.
Pour archlinux par exemple: /usr/share/vim/spell/
Pour toute distribution, juste pour l’utilisateur: ~/.vim/spell

Pour la langue française par exemple:

mkdir -p ~/.vim/spell
cd ~/.vim/spell
wget 'ftp://ftp.vim.org/pub/vim/runtime/spell/fr.*'

Utilisation

Une fois ceci fait, il ne reste plus qu’à utiliser sous vim, pour cela, il faut lancer la commande:

:setlocal spell spelllang=fr

Et pour les allergiques des raccourcis clavier (il ne doit pas y en avoir beaucoup qui utilise vim ;)):

:set mousemodel=popup

Ça permet d’avoir un menu pour les propositions de corrections.

Pour avoir la liste des commandes à utiliser pour corriger/ajouter/etc… des mots:

:help spell

Rapidement, on a:
zg: Ajouter le mot au dictionnaire.
zw: Ajouter le mot au dictionnaire comme étant non valide.
zug, zuw: Enlever le mot du dictionnaire.
z=: Affiche la liste des corrections possibles.
Xz=: X étant un nombre, corrige le mot par la proposition n° X.

Pour avoir la correction automatiquement pour certains fichiers, le *.txt par exemple, il suffit de rajouter au ~/.vimrc:

autocmd BufNewFile,BufRead *.txt setlocal spell spelllang=fr

Juste pour finir, on a (ou j’ai) tendance à utiliser les options dont on a l’habitude sans chercher plus loin quand ce n’est pas obligé, alors pour coder, l’option nowrap est activée, par contre pour du texte, c’est embêtant, seulement l’option wrap coupe les mots, ce qui n’est pas très esthétique, eh bien, il suffit d’activer l’option linebreak.

Commentaire (1)