Voici (une partie de) un tableau que j'utilise dans certains documents:
+---------------+------------------------+---------------------------------------+
| TASK NAME | WHEN | DESCRIPTION |
+---------------+------------------------+---------------------------------------+
| db:seed | On every update | Data required for the application to |
| | | run; you should always be able to |
| | | safely execute this multiple times |
| | | for an update. |
| db:truncate | Manually (dangerous!) | TRUNCATE all tables but postal_codes |
| postal_codes | Once | Load the postal_codes table |
+---------------+------------------------+---------------------------------------+
Le problème est que c'est très difficile à modifier; si je change une chose, je dois (manuellement) tout réaligner, ce qui est un PITA
Existe-t-il des moyens plus simples de gérer cela? Je ne m'inquiète pas de la disposition ci-dessus exacte en tant que telle, mais je voudrais garder l'habillage de la 3ème colonne ...
wrapping
word-processing
alignment
ascii-art
Martin Tournoij
la source
la source
list-table
(récemment, j'ai converti de nombreuses tables en cela, car les tables ascii sont difficiles à maintenir etRéponses:
Je suis l'auteur du plugin vim-table-mode . J'ai passé beaucoup de temps à construire et à améliorer cela, en particulier avec les commentaires de la communauté et cela correspond exactement à ce cas d'utilisation.
Un petit quickstart: Vous entrez en 'mode table' avec la
:TableModeEnable
commande, vous pouvez alors simplement taper:Et vim-table-mode se chargera automatiquement de l'alignement pour vous à la volée, de sorte qu'il ressemblera à:
Lors de l'édition ultérieure du tableau, vim-table-mode se chargera également de l'alignement pour vous.
Vous pouvez quitter le «mode table» avec
:TableModeDisable
.Son cœur est de créer facilement des tableaux qui seront automatiquement formatés au fur et à mesure que vous tapez. Il propose de nombreux mappages pour se déplacer et manipuler des tableaux (un particulièrement utile consiste
<Leader>tdc
à supprimer une colonne entière). Tout ce que vous avez à faire est d'activer le mode tableau et ceux-ci démarrent et vous pouvez simplement taper sans vous soucier du formatage.Il a beaucoup plus de fonctionnalités que celles affichées ici, comme la possibilité d'aligner à droite les colonnes avec un petit indice sur l'en-tête. Il dispose également d'un moteur de formule de feuille de calcul soigné qui permet de définir des formules et d'effectuer des calculs comme le ferait une feuille de calcul ordinaire.
Il est conçu pour être extrêmement flexible et configurable afin que vous puissiez modifier plusieurs aspects des tables et bordures qui sont créées.
J'ai également créé quelques screencasts essayant de montrer ses pouvoirs. Ce screencast est le plus récent , mais veuillez noter qu'il y a eu de nombreuses améliorations depuis.
la source
Si vous pouvez utiliser
sed
etcolumn
, une solution de ligne de commande qui se rapproche serait:Vous pouvez combiner cela avec une sélection visuelle et /
'<,'>
ou avec des numéros de ligne.Les inconvénients:
sed
etcolumn
. Vim est accessoire. Lessed
commandes peuvent probablement être changées en:substitute
commandes vim , mais ellescolumn
sont cruciales.---...-
) sont rembourrés, mais j'ai des doutes sur sa fiabilité.$'\x01'
.Sources:
column -t
garde à la place les séparateurs en sortiela source
Si vous ne souhaitez pas installer de plugins et que vous souhaitez éditer des tableaux en conservant l'alignement:
- utilisez le mode VREPLACE intégré , activé par
gR
.(Assurez-vous que vous disposez de la dernière version de vim, et vérifiez si elle est compilée avec la
+vreplace
fonctionnalité, en tapantvim --version
sur le terminal)(ma ligne d'état est définie pour afficher REMPLACER pour les modes REMPLACER et VREPLACE)
Si vous souhaitez en savoir plus sur les modes REPLACE et VREPLACE , consultez cet article .
la source
J'ai créé le tableau d' outils de ligne de commande à cet effet; cela fonctionne également depuis vim. Installez simplement avec
marquer la table dans vim et appeler
(vim remplit les premiers caractères pour vous si vous avez marqué le tableau.)
Il ne peut pas encore faire de largeur de colonne fixe, mais cela pourrait être ajouté si besoin est.
la source