Насколько я понимаю, вы хотите, чтобы таблица выглядела так, со странной пустой ячейкой в разделе DESCRIPTION:
<tr> <td>DATE</td> <td>NUMBER</td> <td>DESCRIPTION</td> <td>DEADLINE</td> </tr>
<tr> <td>6/7</td> <td>1</td> <td></td> <td>bar1</td> </tr>
<tr> <td>6/15</td> <td>2</td> <td>foo1</td> <td>bar2</td> </tr>
<tr> <td>6/20</td> <td>3</td> <td>foo2</td> <td>bar3</td> </tr>
…
Я прав? Вот один из способов сделать это:
Отформатируйте этот код с помощью :%!column -t или плагин Vim:
<tr> <td>DATE</td> <td>NUMBER</td> <td>DESCRIPTION</td> <td>DEADLINE</td> </tr>
<tr> <td>6/7</td> <td>1</td> <td>foo1</td> <td>bar1</td> </tr>
<tr> <td>6/15</td> <td>2</td> <td>foo2</td> <td>bar2</td> </tr>
<tr> <td>6/20</td> <td>3</td> <td>foo3</td> <td>bar3</td> </tr>
Перейти к первому элементу, затем удалить его с помощью dit . foo1 теперь в регистре по умолчанию.
Начните макрос с qx (используйте любую доступную букву вместо x).
Перейти к строке ниже с помощью j .
Визуально выберите содержимое тега с помощью vit .
Замените выделенный текст (foo2) содержимым регистра по умолчанию (foo1), используя p .
Остановите макрос с помощью q . Содержимое регистра по умолчанию теперь foo2 , готовое к использованию при следующем вызове макроса.
Примените макрос столько раз, сколько вам нужно, используя что-то вроде <number of rows>@x .
Конечный результат:
<tr> <td>DATE</td> <td>NUMBER</td> <td>DESCRIPTION</td> <td>DEADLINE</td> </tr>
<tr> <td>6/7</td> <td>1</td> <td></td> <td>bar1</td> </tr>
<tr> <td>6/15</td> <td>2</td> <td>foo1</td> <td>bar2</td> </tr>
<tr> <td>6/20</td> <td>3</td> <td>foo2</td> <td>bar3</td> </tr>
…
Сжатая версия:
:%!column -t<CR>
(movement)
ditqxjvitpq
17@x
Используйте другой именованный регистр на шаге 2, если вы не хотите связываться с регистром по умолчанию (и вашим системным буфером обмена, если применимо).
Если вы хотите только увеличить число в foo2 и Co, плагин VisIncr очень хорош.