Comment sélectionner le contenu d'une balise HTML dans Vim?


43

Est-il possible de sélectionner le contenu d'une balise HTML dans Vim?

Par exemple:

<p>I am a silly butterfly</p>

Je voudrais sélectionner "Je suis un papillon idiot".

Je sais que vous pouvez utiliser vi"pour sélectionner du texte à l'intérieur de guillemets, de crochets, etc. Le problème est que le texte à l'intérieur des balises HTML ne fait pas vraiment partie de tout ce pour quoi je peux utiliser la ifonction.

Réponses:


68

Vous pouvez utiliser vitpour vsélectionner manuellement le texte ina tag. Voir

:help v_it

2
Parfait! Je vais écrire un article à ce sujet sur mon blog. Je n'ai rien trouvé sur Google avec "Vim sélectionnant le contenu des balises html" et autres.
— fholgado

Vous pouvez également remplacer vpar de nombreuses autres commandes, que j’utilise souvent cpour cmodifier; >et <pour réparer l'indentation.
— dukedave

8
@ hobbes3: pour inclure les balises dans la sélection, utilisez vat. Je pense itcomme dans une balise et atcomme une balise. Voir :help at.
— garyjohn

1
Suis-je le seul dont vim sélectionne la balise d'ouverture vit? Cela me dérange depuis des années et je ne sais pas pourquoi Vim fait ça.
— Jonathan Dumaine

2
Notez que vous pouvez également utiliser les deux fois, par exemple. vatat
— user1338062

6

Voici les étapes:

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

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

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

Voir plus à " Comment sauter entre les balises HTML / XML correspondantes? ".


0

Si le format est bien indenté comme ça,

<div>
  <p>
    I am a silly butterfly
  </p>
  <p>
    I am a silly butterfly
  </p>
</div>

Vous utilisez le plugin can vim-indent-object , et tapezvii

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.