Como alterar o par de uma tag HTML alterada no Vim?

4

Como posso configurar o Vim para que, quando eu alterar um membro de um par de tags HTML, o outro seja automaticamente alterado para corresponder?

Por exemplo: dado <span>content</span> , desejo alterar o primeiro <span> para <div> e, em seguida, o segundo <span> muda automaticamente para </div> . O ideal seria acontecer ao retornar do modo de inserção para o modo normal, mas não haveria problema se eu tivesse que apertar um atalho especial para fazer isso acontecer.

    
por hjkml 15.11.2014 / 22:53

2 respostas

2

Aqui estão alguns passos:

  1. Coloque o cursor na primeira tag.
  2. Selecione o código html externo pressionando: v a t .
  3. Pressione Esc para sair do modo visual e digite:

    :'<,'<s/span/div/
    :'>,'>s/span/div/
    

    Observe que :'>,'>s/span/div/ não funcionará corretamente se houver duas ocorrências da mesma tag de fechamento na mesma linha, pois sempre alterará a primeira. Para corrigir isso, use: :'>,'>s/.*\zsspan/div/ . Veja: Como alterar a última ocorrência da string na linha?

Relacionados:

por 22.02.2015 / 19:15
0

Com o SwapIt - Trocador de palavras-chave extensível , você pode definir grupos de tags que podem ser alternado via <C-a> / <C-x> . Por exemplo, em ~/.vim/ftplugin/html_swapit.vim :

SwapList layout p div span

Se você tem as tags inicial e final na mesma linha (e há apenas um desse tipo), você pode editá-las pelo meu Plugin ChangeGlobally .

Existem também vários plugins "multicursores", que permitem marcar certas palavras e editá-las de uma só vez.

    
por 16.11.2014 / 21:02

Tags