J'utilise beaucoup reStructuredText (rst) au boulot pour initialiser de la documentation. Ce qui est intéressant avec ce système, c'est qu'il est possible de tracer des table en ASCII qui vont être interprétées et transformées dans le langage cible (html pour moi).
La façon la moins tordue de décrire ces tables est la suivante :
======= ======= =======
Header1 Header2 Header3
======= ======= =======
cell11 cell12 cell13
cell21 cell22 cell23
======= ======= =======
Vous remarquerez que c'est déjà super chiant de tout aligner et vous devez me penser que je suis un doux dingue pour tenter de vous dire que rst est génial si vous voulez décrire un tableau de 30 colonnes. Un peu c'est vrai...
Rassurez-vous, je ne trace pas ces tableaux à la main ! J'essaie d'être un peu plus malin.
Il existe une commande column sous Linux / Cygwin qui permet d'afficher des données sous forme de table. Génial ! Essayons d'en tirer parti dans Vim.
Commencez à décrire votre tableau en séparant les champs par des pipes :
Header1|Header2|Header3
cell11|cell12|cell13
cell21|cell22|cell23
Sélectionnez les lignes avec Vim (Shift + V) puis tapez la commande suivante :
:'<,'>!column -t -s '|'
Elle prend la sélection, et la passe à travers la commande column. L'option -t lui dit de conserver les lignes et l'option -s permet de définir le séparateur.
Vous vous retrouvez avec ça :
Header1 Header2 Header3
cell11 cell12 cell13
cell21 cell22 cell23
Il vous suffit alors de mettre les délimiteurs de table pour que votre tableau soit reconnu par rst.
======= ======= =======
Header1 Header2 Header3
======= ======= =======
cell11 cell12 cell13
cell21 cell22 cell23
======= ======= =======
Et voilà !