Comment sauter entre les balises HTML / XML correspondantes?

44

Comment sauter entre les balises correspondantes ( par exemple <div>, <span>etc.) lors de l' édition HTML / XHTML / documents XML De même que l' %on utilise pour sauter entre parenthèses correspondant?

Kenorb
la source
6
duplication possible de Utilisation de% dans des langues sans accolades ... Cette solution fonctionne également pour HTML (elle vient de la tester, si >elle fonctionne comme avant, si vous êtes sur divelle fonctionnera comme vous le souhaitez).
Martin Tournoij
@Carpetsmoker Si cette question devait être dupliquée avec une réponse de type général (en utilisant un plugin), elle ne permettrait aucune réponse traitant spécifiquement des balises html.
Kenorb
Cependant, l’autre question a exactement la même réponse, c’est donc un doublon.
Poignée de porte
Exemple de réponse posté qui ne rentre pas dans une autre question, ce n'est donc pas un doublon.
Kenorb
1
@Doorknob Le fait que deux questions aient la même réponse ne signifie pas nécessairement que les questions sont des doublons.
200_success

Réponses:

45

Vim est livré avec une macro appelée matchit qui le fait pour vous; tout ce que vous avez à faire est de l'activer runtime macros/matchit.vimdans votre vimrc. Cela vous permettra de sauter à partir, par exemple, un <div>son </div>. Notez que votre curseur devra être à l’intérieur des crochets; si vous êtes sur les équerres, %sauterez d'une équerre à l'autre normalement.

À M
la source
23

Vous pouvez passer d'une balise à une autre à l'aide d'opérateurs visuels, par exemple:

  1. Placez le curseur sur la balise.
  2. Entrez en mode visuel en appuyant sur v.
  3. Sélectionnez le bloc de balises externe en appuyant sur a+ tou i+ tpour le bloc de balises interne.

Votre curseur doit passer au tag html / xml de fermeture correspondant. Pour revenir en arrière depuis la balise de fermeture, appuyez sur oou Opour passer à la balise opposée.

Vous pouvez maintenant quitter Visual en appuyant sur Esc, modifier cou copier par y.


Pour enregistrer cette action dans le registre, appuyez sur qqpour démarrer l'enregistrement, effectuez le saut de balise comme ci-dessus (y compris Esc), appuyez sur qpour terminer. Ensuite, pour invoquer le saut, appuyez sur @q.


Voir plus d'aide sur :help visual-operatorsou :help v_it:

at un <tag> </tag>bloc (avec des balises)

it<tag> </tag>bloc intérieur


Vous pouvez également utiliser un plugin tel que matchit.vim ou surround.vim .


Voir également:

Kenorb
la source
3

Le plugin xmledit( http://vimawesome.com/plugin/xmledit ) permet de basculer entre les balises open et close en utilisant

  • <localleader>%

<Localleader> le sera souvent \, vous pouvez donc sauter avec

  • \%

REMARQUE: contrairement à matchitvous, vous n'avez pas à mettre votre curseur à l'intérieur de la balise. Le placer directement sur le <ou >convient parfaitement au xmleditplug - in. :)

NOTE 2: L’inconvénient est que vous ne pouvez pas l’utiliser en mode visuel. Mais ce n'est pas grave, car vous pouvez toujours sélectionner la balise entière avec at.

Boris Brodski
la source