Выравнивание текста с помощью Tabularize - PullRequest
3 голосов
/ 30 марта 2012

Я использую плагин Tabularize в Vim, и у меня есть следующий текст:

reg [321:123] ip_addr=32'h12345678;
reg [15:0] trie_data=16'h9abc;
reg [2:0] select=3'h5;

wire [3:0] nibble;
wire sram_bit;

, который я хочу выровнять таким образом:

reg  [321:123] ip_addr   = 32'h12345678;
reg   [15:0]   trie_data = 16'h9abc;
reg    [2:0]   select    = 3'h5;

wire   [3:0]   nibble;
wire           sram_bit;

В словах:

  • reg / wire выравнивания по левому краю в первом столбце
  • ширина битов выравнивания по центру, если имеется, вдоль ':'
  • имен сигналов выравнивания по левому краю в третьем столбце
  • = знаки в 4-м столбце
  • выравнивание по левому краю начальных значений в 5-м столбце.

До сих пор я пробовал следующее по порядку:

:Tabularize /[[0-9]*:/l1r0l0
:Tabularize /:[0-9]*]/l0l1l0
:Tabularize /=

, но в первом столбце сочетаются 'wire' и 'sram_bit' вместо того, чтобы помещать их соответственно в первый и третий столбцы.

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

С помощью двух команд Tabularize это можно сделать так:

:Tabularize /[[0-9]*:/l1c0l0
:Tabularize /=

Так что здесь вы в основном используете [number: в качестве разделителя.

1 голос
/ 30 марта 2012

Или с Align.vim

:AlignCtrl <>
:AlignCtrl p0
:%Align \S\+

:AlignCtrl p1
:%Align =

У меня такое ощущение, что должен быть простой способ объединить их, но я не совсем сразу понял, поэтому оставлю это на другой день

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...