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.

fholgado
la source

Réponses:

68

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

:help v_it
Garyjohn
la source
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? ".

Kenorb
la source
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

Foxiris
la source