Vim: Columindo uma longa linha de matrizes

1

Ao escrever testes, muitas vezes eu quero comparar um valor gerado com algo que eu já gerou anteriormente, mas descarregar a saída do meu console no vim leva a uma linha muito longa e feia. Existe alguma maneira de mudar:

[ 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 ]

para

[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]                             

Eu olhei para o regex para fazer isso, mas dividir cada 8ª ocorrência de coma está além de mim.

Pontos de bônus se ele também puder lidar com

{ x: 10, y: 220}, { x: 130, y: 40, z: 50 }, { a: "foo" }, ...
    
por thelastshadow 26.08.2015 / 08:15

1 resposta

3

Uma resposta rápida

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

em que .\{-} é uma correspondência não desejada para qualquer coisa e \{8} é exatamente 8 vezes a precedendo \(pattern\) .

Há uma resposta usando gqq que pode interessar você também.

Adicione a linha

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

para o seu arquivo ~ / .vimrc, então você pode executar essa macro a qualquer momento com @a e retornar. Substitua a por qualquer letra a..z pelo nome da macro.

    
por 26.08.2015 / 08:33

Tags