Como alternar entre tags HTML / XML correspondentes?

44

Como pular entre tags correspondentes (como <div>, <span>etc.) ao editar documentos HTML / XHTML / XML da mesma forma que %é usado para pular entre parênteses?

kenorb
fonte
6
possível duplicação de Usando% em idiomas sem chaves ... Esta solução também funciona para HTML (apenas a teste, se você estiver usando um, >ele funcionará como antes, se você estiver usando divele funcionará como deseja).
Martin Tournoij 13/02/2015
@Carpetsmoker Se essa pergunta for duplicada da resposta geral (usando um plug-in), ela não permitirá respostas que estejam relacionadas especificamente às tags html.
Kenorb
No entanto, a outra pergunta tem exatamente a mesma resposta, portanto, essa é uma duplicata.
Maçaneta da
Resposta de amostra publicada que não se encaixa em outra pergunta; portanto, não é duplicada.
Kenorb
1
@ Doorknob O fato de duas perguntas terem a mesma resposta não significa necessariamente que as perguntas sejam duplicadas uma da outra.
200_success

Respostas:

45

O Vim é enviado com uma macro chamada matchit que faz isso por você; tudo o que você precisa fazer é ativá-lo runtime macros/matchit.vimno seu vimrc. Isso permitirá que você pule de, por exemplo, a <div>para o seu </div>. Observe que seu cursor deverá estar dentro dos colchetes angulares; se você estiver entre colchetes angulares, %passará de um colchete para outro normalmente.

Tom
fonte
23

Você pode pular entre tags usando operadores visuais, por exemplo:

  1. Coloque o cursor na etiqueta.
  2. Entre no modo visual pressionando v.
  3. Selecione o bloco de tag externo pressionando a+ tou i+ tpara o bloco de tag interno.

Seu cursor deve avançar para a tag html / xml de fechamento correspondente. Para pular para trás da etiqueta de fechamento, pressione oou Opara pular para a etiqueta oposta.

Agora você pode sair visual pressionando Esc, alterando cou copiando por y.


Para gravar essa ação no registro, pressione qqpara iniciar a gravação, execute o salto de tag conforme acima (inclusive Esc), pressione qpara finalizar. Em seguida, para ativar o salto, pressione @q.


Veja mais ajuda em :help visual-operatorsou :help v_it:

at um <tag> </tag>bloco (com tags)

it<tag> </tag>bloco interno


Como alternativa, use plug- ins como matchit.vim ou surround.vim .


Veja também:

kenorb
fonte
3

O plug-in xmledit( http://vimawesome.com/plugin/xmledit ) permite alternar entre as tags de abertura e fechamento usando

  • <localleader>%

Freqüentemente <localleader> será \, para que você possa pular com

  • \%

NOTA: Ao contrário matchit, você não precisa colocar o cursor dentro da tag. Colocá-lo diretamente no <ou >é perfeitamente adequado para o xmleditplug - in. :)

NOTA 2: Uma desvantagem aqui é que você não pode usá-lo no modo visual. Mas isso não é grande coisa, pois você sempre pode selecionar a tag inteira at.

Boris Brodski
fonte