Vim Foo, lista para tabela HTML

1

Qual é a maneira mais fácil de ir do Vim:

hello
world
test
test2
test3
test4

para

<table>
<tr>
<td>hello</td>
<td>world</td>
</tr>
<tr>
<td>test</td>
<td>test2</td>
</tr>
<tr>
<td>test3</td>
<td>test4</td>
</tr>
</table> 

Para uma lista de tamanho arbitrário?

    
por Sam Saffron 15.02.2010 / 05:34

3 respostas

3

Você pode adicionar < table > e < / table > manualmente: %código% Onde [ESC] é a tecla superior esquerda do seu teclado +)

  1. gg - vai para o topo do arquivo
  2. O - adiciona nova linha acima da atual
  3. < tabela > - escreva < table >
  4. [ESC] - de volta ao modo de comando
  5. Y - linha atual do yank
  6. G - vai até o final do arquivo
  7. p - cole a linha arrancada abaixo da atual
  8. a - começa o modo de inserção e inicia a inserção após o símbolo atual
  9. / - adicionar / símbolo
  10. [ESC] - de volta à linha de comando

Agora você pode gravar macros vim curtas para repetir outro conjunto de comandos várias vezes:

ggO<table>[ESC]YGpa/[ESC]

Sim, agora você pode apenas repetir :2[ENTER]qqO<tr>[ESC][DOWN]I<td>[ESC]A</td>[ESC][DOWN] I<td>[ESC]A</td>[ESC]o</tr>[ESC][DOWN]q várias vezes ... (por exemplo, @q )

  1. : 2 - vá para a segunda linha no arquivo
  2. qq - inicia a gravação de macros no registro 'q'
  3. O - adiciona nova linha acima da atual
  4. < tr > - adicionar < tr >
  5. [ESC] [DOWN] - você sabe =)
  6. Eu - vou para o começo da linha e começo o modo de inserção
  7. < td > - escreva < td >
  8. [ESC] - ...
  9. A - vai até o final da linha e inicia o modo de inserção
  10. < / td > - ...
  11. [ESC] [DOWN]
  12. repita 6-10
  13. [ESC]
  14. o - adiciona linha abaixo da corrente e inicia o modo de inserção
  15. < / tr > - ...
  16. [ESC] [DOWN] q - fim de gravação de macros
por 15.02.2010 / 07:53
2

Pode ser que você esteja procurando código zen para vim .

    
por 15.02.2010 / 08:08
0

Eu sei que você provavelmente está pensando em alguma solução inteligente usando macros, mas deixei meus dedos andarem (já que você provavelmente não terá uma tabela HTML com centenas de linhas):

Para cada linha do arquivo, substitua o início da linha por <td> E para cada linha, substitua o final da linha por </td>

%s/^/<td>/
%s/$/<\/td>/

siga a primeira linha e insira

</tr>
<tr>

Arranque as linhas, pressione a seta para baixo até chegar ao próximo ponto de inserção e pressione p Continue até a parte inferior do arquivo, pressionando p a cada duas linhas. Há um tipo simples de ritmo aqui que eu gosto de usar: baixo, baixo, p, baixo, baixo, p, etc.

Altere a última linha para

</table>

Volte para o topo e mude a primeira linha para

<table>

Obviamente, eu não tentei isso (e admito que macros podem ser mais fáceis para alguns)

    
por 15.02.2010 / 06:31

Tags