Informatique et liberté

22 juin 2009

VIM et son .vimrc : la correction orthographique

Classé dans : Planet Libre, Planet Vim-FR — Mots-clefs :, , , , — Phil @ 10 h 40 min

En lisant cet article, vous mettez les pieds dans le premier opus d’une série de billets dans lesquels je vais entreprendre de vous présenter les différents points de mon fichier de configuration de VIM. Ce fichier, très personnel et c’est bien son intérêt, peut être remis en cause pour bien des raisons (de la technique à la logique) et c’est justement ce que je recherche pour l’améliorer !

Bien-sûr, il est délicat de jeter dans un billet tout un ~/.vimrc ! Ce serait le meilleur moyen je pense pour ne pas le commenter suffisamment et pour éparpiller les réactions que j’espère obtenir. C’est pourquoi je vais présenter mes options point par point ! Ici, c’est la correction orthographique via les dictionnaires Hunspell !

Avant toute chose, je commence par afficher le code concerné :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
if has("spell")
    " Les dictionnaires seront telecharges automatiquement si le repertoire ~/.vim/spell existe
    if !filewritable($HOME."/.vim/spell")
        call mkdir($HOME."/.vim/spell", "p")
    endif
    set spellsuggest=10 " La commande z= affiche des suggestions, je n'en veux que 10 pour ne pas surcharger l'écran
    " On regle les touches d'activation manuelle de la correction orthographique
    noremap ,sf :setlocal spell spelllang=fr <CR>
    noremap ,se :setlocal spell spelllang=en <CR>
    noremap ,sn :setlocal nospell <CR>
    " On active automatiquement le mode spell pour les fichiers texte et LaTeX
    autocmd BufEnter *.txt,*.tex setlocal spell
    autocmd BufEnter *.txt,*.tex setlocal spelllang=fr
endif

Quelques commentaires seront sûrement les bienvenus :

  • J’essaie d’inclure les commandes de mon fichier de configuration dans des tests de base tel que le if has("spell") ci-dessus pour m’assurer plus de portabilité de cette configuration. En effet, j’espère bien m’en servir ailleurs que sur mon poste personnel et les installations de VIM peuvent se faire indépendamment de certaines options… Si vous connaissez des tests de ce genre que je ne mets pas en pratique alors que je devrais, n’hésitez pas !
  • La première chose à savoir est qu’il n’est pas forcément utile de télécharger les dictionnaires (ma configuration par défaut n’avait pas le fichier du dictionnaire français UTF-8 ni la listes des suggestions associées) car la seule présence du répertoire ~/.vim/spell active la fonctionnalité et permet à VIM de télécharger le bon dictionnaire automatiquement si ce répertoire est accessible en écriture. Mon script vérifie donc cette accessibilité du répertoire et le crée au besoin avec l’option « p » (pour parents) qui assure que les répertoires successifs seront créés s’ils n’existent pas.
  • Positionner spellsuggest à 10 permet de ne pas surcharger l’écran de suggestions si l’utilisateur demande de l’aide pour orthographier un mot (la commande pour ce faire est z= lorsque le curseur est sur le mot). Cela permet de voir les suggestions et le contexte en même temps. D’autant plus que l’on peut supposer que la bonne orthographe est soit présente dans le top 10 des suggestions soit inexistante…
  • Je mappe ensuite les combianaisons de touches « ,sf », « ,se » et « ,sn » pour respectivement activer de manière locale la correction orthographique française, anglaise ou la désactiver simplement. Les mots mal orthographiés apparaissent dès lors en rouge.
  • Vous remarquerez que je n’active pas cette option automatiquement car il est dérangeant de travailler avec de la correction orthographique sur un script par exemple… Je veux pouvoir l’activer ou la désactiver manuellement sur les fichiers textuels. Cependant, on peut supposer en avoir besoin sur les fichiers d’extensions « txt » ou « tex » (pour le LaTeX) donc les options sont activés automatiquement sur les fichiers ayant ces extensions mais il reste bien entendu possible de désactiver le tout avec « ,sn ».

Suivront d’autres points de mon Vimrc tels que la gestion des templates ou la recherche de texte dans les fichiers. J’espère que vous saurez remonter vos remarques dans les commentaires ou au moins être inspirés pour vos propres fichiers de configuration de VIM !

Partagez cet article

  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Identi.ca
  • LinkedIn
  • MySpace
  • Netvibes
  • Reddit
  • Technorati
  • Twitter
  • Wikio FR
  • email

Ces articles pourraient vous intéresser...

7 commentaires »

  1. Intéressant ! Je ne savais pas pour le téléchargement automatique. Par contre comment faire derrière un proxy ?

    Sinon, sous Windows, il me semble qu’on utilise pas de répertoire .vim mais un répertoire vimfiles. Ce n’est pas donc tout à fait portable.

    Commentaire par djib — 22 juin 2009 @ 12 h 15 min

  2. Je t’avoue que par « portable », j’entends d’une machine GNU/Linux à une autre :) Mais les utilisateurs de Windows pourraient affiner ! Je crois qu’il existe des tests du genre has(’unix’) et un équivalent Windows… Placer en début de script pour définir le répertoire de travail de VIM, ça pourrait le faire ! En fait, ça m’intéresserait même, on sait jamais ^^

    Pour ce qui est du proxy… Il y a la variable d’environnement HTTP_PROXY à renseigner dans ton TTY.

    Commentaire par Phil — 22 juin 2009 @ 13 h 34 min

  3. Oui et non pour le HTTP_PROXY. Je passe par une configuration automatique de proxy et je ne sais pas comment le faire avec des variables d’environnement.

    Commentaire par djib — 22 juin 2009 @ 16 h 12 min

  4. Je ne sais pas comment t’aider, n’hésite pas à aller sur le salon #vim sur Freenode au besoin, ils sont très sympa et compétents à la fois :p

    Commentaire par Phil — 22 juin 2009 @ 16 h 19 min

  5. [...] VIM et son .vimrc : la correction orthographique [...]

    Ping par Lectures Libres pour le week-end #21 | Informatique — 28 juin 2009 @ 0 h 21 min

  6. Super, je ne savais pas pour le téléchargement automatique. Ça m’a bien servi, merci.
    :wq

    Commentaire par yogsototh — 14 octobre 2009 @ 0 h 26 min

  7. [...] This post was Twitted by didiermisson [...]

    Ping par Twitted by didiermisson — 15 octobre 2009 @ 4 h 17 min

Flux RSS des commentaires de cet article. Adresse web de rétrolien

Laisser un commentaire

  • Flux RSS
  • Pages
  • Catégories
  • Archives
  • Étiquettes
  • Propulsé par WordPress