Выровняйте крайний правый столбец только с помощью Vim и плагина Tabular

Я использую Vim и популярный плагин Tabular.

Я хочу выровнять по правому краю крайний правый столбец чисел только. Я хочу оставить остальные три столбца такими, какие они есть: столбец 1 должен оставаться выровненным по правому краю, а столбцы 2 и 3 должны оставаться выровненными по левому краю. Как мне это сделать?

 1  foo   bary  42
 2  foox  bar   689
 3  foo   bary  1
 4  foox  bar   3091
 5  foo   bary  2105
 6  foox  bar   7
 7  foo   bary  6
 8  foox  bar   300
 9  foo   bary  926
10  foox  bar   69
11  foo   bary  2
12  foox  bar   21

Вот желаемый результат.

 1  foo   bary    42
 2  foox  bar    689
 3  foo   bary     1
 4  foox  bar   3091
 5  foo   bary  2105
 6  foox  bar      7
 7  foo   bary     6
 8  foox  bar    300
 9  foo   bary   926
10  foox  bar     69
11  foo   bary     2
12  foox  bar     21

Предположим для целей этого общего класса задач, что строки, разделяющие столбцы, представляют собой один или несколько пробелов.

Спасибо за помощь.

Джим Монти


person Jim Monty    schedule 18.03.2014    source источник
comment
Ваш второй столбец также обновляется до желаемого результата. Сомневаюсь, что Tabularize сможет это сделать ;)   -  person Amit Verma    schedule 19.03.2014
comment
Хороший глаз! Я исправил эти непреднамеренные ошибки в своем примере. Спасибо, Амит.   -  person Jim Monty    schedule 19.03.2014


Ответы (1)


Это должно работать

:Tabularize /[0-9]*$/l2r0

Демо:

введите здесь описание изображения

person Amit Verma    schedule 18.03.2014
comment
Это секретный соус. Спасибо, Амит! Варианты одного и того же регулярного выражения также работают. Например: :Tabularize /\d\+$/l2r0, :Tabularize /\v\d+/l2r0 и т. д. - person Jim Monty; 19.03.2014