1 votes

Vim : Columisation d'une longue ligne de tableaux

En écrivant des tests, je veux souvent comparer une valeur générée à quelque chose que j'ai précédemment généré, mais le fait de déverser la sortie de ma console dans vim conduit à une très longue ligne laide. Existe-t-il un moyen de changer :

[ 6263, 4608 ], [ 6131, 4192 ], [ 6240, 4055 ], [ 6114, 3514 ], [ 6142, 3447 ], [ 6592, 3360 ], [ 6804, 3559 ], [ 7088, 3576 ], [ 7334, 3349 ], [ 7358, 3049 ], [ 7843, 2849 ], [ 8053, 3050 ], [ 7973, 3505 ], [ 8398, 3709 ], [ 8368, 4079 ], [ 8441, 4146 ], [ 8484, 4710 ], [ 9001, 4615 ], [ 9174, 4781 ], [ 9595, 4704 ], [ 9793, 4850 ], [ 9806, 5275 ], [ 9548, 5524 ], [ 9283, 5462 ], [ 8897, 5903 ], [ 8947, 6066 ], [ 8585, 6443 ], [ 8647, 6661 ], [ 8436, 6981 ], [ 8612, 7289 ], [ 8444, 7551 ], [ 8675, 7851 ], [ 8477, 8153 ], [ 8197, 8191 ], [ 8105, 8283 ], [ 7504, 8388 ], [ 7740, 8249 ], [ 7641, 7587 ], [ 7904, 7475 ], [ 8006, 6983 ], [ 7895, 6847 ], [ 8023, 6283 ], [ 8128, 6222 ], [ 8220, 5843 ], [ 7987, 5473 ], [ 8440, 5116 ], [ 8395, 4805 ], [ 7896, 4657 ], [ 7870, 4247 ], [ 7686, 4085 ], [ 7329, 4105 ], [ 7238, 4209 ], [ 7305, 4787 ], [ 6833, 4815 ]

zu

[6263, 4608], [6131, 4192], [6240, 4055], [6114, 3514],
[6142, 3447], [6592, 3360], [6804, 3559], [7088, 3576],
[7334, 3349], [7358, 3049], [7843, 2849], [8053, 3050],
[7973, 3505], [8398, 3709], [8368, 4079], [8441, 4146],
[8484, 4710], [9001, 4615], [9174, 4781], [9595, 4704],
[9793, 4850], [9806, 5275], [9548, 5524], [9283, 5462],
[8897, 5903], [8947, 6066], [8585, 6443], [8647, 6661],
[8436, 6981], [8612, 7289], [8444, 7551], [8675, 7851],
[8477, 8153], [8197, 8191], [8105, 8283], [7504, 8388],
[7740, 8249], [7641, 7587], [7904, 7475], [8006, 6983],
[7895, 6847], [8023, 6283], [8128, 6222], [8220, 5843],
[7987, 5473], [8440, 5116], [8395, 4805], [7896, 4657],
[7870, 4247], [7686, 4085], [7329, 4105], [7238, 4209],
[7305, 4787], [6833, 4815]                             

J'ai regardé les expressions rationnelles pour faire cela, mais diviser toutes les 8 occurrences d'une virgule me dépasse.

Points bonus s'il peut également prendre en charge

{ x: 10, y: 220}, { x: 130, y: 40, z: 50 }, { a: "foo" }, ...

3voto

meuh Points 5650

Une réponse rapide

:s/\(\(.\{-},\)\{8}\)/\1\r/g

donde .\{-} est une correspondance non gourmande pour n'importe quoi, et \{8} est exactement 8 fois plus élevé que le précédent \(pattern\) .

Il y a un répondre en utilisant gqq qui pourraient également vous intéresser.


Ajouter la ligne

let @a=':s/\(\(.\{-},\)\{8}\)/\1\r/g'

dans votre fichier ~/.vimrc, vous pouvez alors exécuter cette macro à tout moment avec @a et retour. Remplacer a par n'importe quelle lettre a..z pour le nom de la macro.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X