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

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

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

Por exemplo: dado <span>content</span>, quero mudar <span>para <div>, e então o fechamento </span>muda automaticamente para </div>. Idealmente, isso aconteceria ao retornar do modo de inserção para o modo normal, mas não haveria problema se eu tivesse que pressionar uma tecla especial para que isso acontecesse.

Responder1

O excelentesurround.vimtorna isso simples - com o cursor em qualquer lugar dentro da tag que você deseja alterar, no modo normal, digite cst<div>( change surrounding tag to <div>). O nome da tag será alterado para "div" tanto na tag de abertura quanto na de fechamento, e você voltará ao modo normal.

Responder2

Aqui estão algumas etapas:

  1. Coloque o cursor na primeira tag.
  2. Selecione o código HTML externo pressionando: vat.
  3. Pressione Escpara 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 consertar, use: :'>,'>s/.*\zsspan/div/em vez disso. Ver:Como alterar a última ocorrência da string na linha?

Relacionado:

Responder3

O Vimir juntoplugin pode fazer isso:

Acompanhamento do Vim

Responder4

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

SwapList layout p div span

Se você tiver tags de início e fim na mesma linha (e houver apenas uma desse tipo), poderá editar ambas através do meuPlug-in ChangeGlobally.


Existem também vários plugins “multicursores”, que permitem marcar determinadas palavras e editá-las todas de uma vez.

informação relacionada