O que eu entendo é que você quer que a tabela fique assim, com uma célula vazia estranha sob 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>
…
Estou certo? Aqui está uma maneira de fazer isso:
-
Formate este código com
:%!column -t
ou um plugin 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>
-
Mova para o primeiro item e exclua-o com
dit
.foo1
agora está no registro padrão. -
Inicie uma macro com
qx
(use qualquer letra disponível em vez dex
). -
Mova para a linha abaixo com
j
. -
Selecione visualmente o conteúdo da tag com
vit
. -
Substitua o texto selecionado (
foo2
) pelo conteúdo do registro padrão (foo1
) usandop
. -
Pare a macro com
q
. O conteúdo do registro padrão agora éfoo2
, pronto para uso na próxima vez que a macro for invocada. -
Aplique a macro quantas vezes você precisar com algo como
<number of rows>@x
.
Resultado final:
<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>
…
Versão condensada:
:%!column -t<CR>
(movement)
ditqxjvitpq
17@x
Use outro registro nomeado na etapa 2 se não quiser mexer no registro padrão (e na área de transferência do sistema, se aplicável).
Se você quiser apenas aumentar o número em foo2
e Co, o plug-in VisIncr é muito bom.