Usando o vim para criar texto com largura fixa?

0

Eu tenho texto na forma

xxxx  yyyyy
xx yyyy
xxxxxxxx  yyyyy
x y

Eu gostaria que o segundo conjunto de cada linha começasse no mesmo ponto, ou seja,

xxxx      yyyyy
xx        yyyy
xxxxxxxx  yyyyy
x         y

Eu não consigo pensar em uma solução elegante usando o vim e isso sempre me incomoda quando eu invisto mais tempo em uma solução do que seria necessário apenas para fazer algo manualmente. Pode sempre bancar isso da próxima vez se alguém tiver uma inteligência 1!

    
por 2c2c 27.01.2014 / 19:27

1 resposta

1

Eu vi alguns truques inteligentes de encontrar / substituir que fariam o trabalho, mas eu não posso, para a vida de mim, confiá-los à memória, então é uma coisa que eu uso (e recomendo) um plugin.

Usando Alinhar , isso se torna um mero

- VG                (select all)
- <leader>tsp       (align whitespace)

Da ajuda

    ---------------------------         *alignmap-Tsp*
    Alignment Map Examples: \tsp            *alignmap-tsp* {{{3
    ---------------------------

    Normally Align can't use white spaces for field separators as such
    characters are ignored surrounding field separators.  The \tsp and
    \Tsp maps get around this limitation.

    Original: >
     one two three four five
     six seven eight nine ten
     eleven twelve thirteen fourteen fifteen
<
    Becomes: Select the lines, \tsp >
     one    two    three    four     five
     six    seven  eight    nine     ten
     eleven twelve thirteen fourteen fifteen
<
    Becomes: Select the lines, \Tsp >
        one    two    three     four    five
        six  seven    eight     nine     ten
     eleven twelve thirteen fourteen fifteen
<
    
por 27.01.2014 / 19:38