Mathieu Agopian : Vim, Restructured Text et espaces insécables

Pour avoir un espace insécable dans un fichier HTML généré à partir d'un fichier ReST, il suffit d'utiliser un espace insécable (unicode \xA0) dans le fichier source. Il sera alors automatiquement converti en   lors de la compilation en HTML.

Pour entrer un espace insécable avec vim il faut faire la combinaison de touches suivantes : CTRL+k N S (si on a une touche Compose c'est Compose <space> <space>). Sur certains claviers (mac, bepo...) c'est plus simple : CTRL+space ou ALTGR+space.

Étant fainéant, voici comment j'ai mappé cette combinaison barbare sur CTRL+space :

" map CTRL+k S N (non-breaking space) to CTRL+space
imap <Nul> <C-k>NS

Attention, si vous utilisez gvim, il vous faut remplacer <Nul> par <C-space>.

Enfin voici une solution simple et rapide pour visualiser les espaces insécables (et les espaces en fin de ligne) :

" visual indication of trailing and non-breaking spaces
set listchars=trail:-,nbsp:_
set list

La commande barbare

Pour ceux qui comme moi oublient régulièrement des espaces insécables, voici comment remplacer tous les espaces avant un :, ;, ? ou ! (bien remplacer <CTRL+k N S> par la séquence de touches pour générer l'espace insécable) :

:%s/\(\S\) \([:;?!]\)/\1<CTRL+k N S>\2/g

Je vous avais prévenus, c'est violent. En gros, ce que ça fait :

Avec tout ça, plus d'excuses pour ne pas utiliser des espaces insécables quand c'est nécessaire (merci @n1k0 pour la piqûre de rappel ;).

Tous les articles

  1. VIM et la correction orthographique
  2. Point-virgule
  3. Sud Web, c'est bon pour ton web
  4. La technique pomodoro : retour après plus d'un mois d'utilisation
  5. La technique pomodoro : retour après deux semaines d'utilisation
  6. La vie a la couleur qu'on veut bien lui donner
  7. MySQL, mysqldump et PHP : convertir de latin1 vers utf8
  8. Obfuscation de l'email alternative et accessible
  9. Linux: savoir si le processeur est 32bits ou 64bits
  10. PyCon.fr: venez m'y voir!
  11. Le contrôle de versions de sources: pourquoi?
  12. Apprendre à faire, et faire
  13. 30 ans, et toutes mes dents