samedi 8 février 2014

Espaces insécables dans vim

Je l'ai appris il y a peu de temps et je l'utilise de plus en plus. Et oui messieurs dames, l'espace insécable existe dans Vim. Vous pouvez en insérer en faisant ctrl + k puis 2 fois espace.

Quel intéret me direz vous ?
D'une part, cela permet de ne pas couper les espaces lorsque vous reformatez un bloc avec la commande gq ou indépendamment de votre volonté si vous avez paramétré l'option textwidth. Cela permet notamment de ne pas coupez vos liens quand vous écrivez en markdown, par exemple ou si vous êtes tatillons sur l'usage de l'espace insécable dans la ponctuation en Français.
D'autre part, comme il s'agit (si j'ai bien compris) d'un caractère unicode, vous pouvez le mettre dans tous vos documents en UTF-8. Je veux dire par là que vous pouvez vous passer de l'utilisation de l'attroce   dans vos documents HTML. Notez en passant que j'ai eu un mal fou à savoir orthographier correctement cette entité.

Seul point négatif : c'est un caractère vide (blank). Comment dans ce cas faire la différence dans vos document entre un espace sécable et un espace insécable ? En temps normal, j'ai envie de dire qu'on s'en fiche. Si toutefois, vous voulez le voire dans Vim, utilisez les commandes ci-dessous :

" listchars permet de dire comment afficher les caractères invisibles
set listchars=nbsp:%

" list permet de déclencher l'affichage des caractères invisibles, selon le
" paramétrage de l'option listchars.
set list

" Et, classiquement, pour les faire disparaître
set list!

C'était l'article utile du week-end.