web-dev-qa-db-fra.com

Vim peut-il mettre en surbrillance les balises HTML correspondantes comme Notepad ++?

VIM prend en charge l'appariement des paires d'accolades, de parenthèses et de crochets. C'est parfait pour l'édition de langages de style C comme PHP et Javascript. Mais qu'en est-il des balises HTML correspondantes?

Notepad ++ a cette fonctionnalité depuis que je l'utilise. Être capable de localiser le début et la fin des blocs HTML est très utile. Ce que je recherche, c’est quelque chose comme ceci pour vim (voir les balises div vert):

(Une fonctionnalité supplémentaire: mettre en évidence les balises HTML non fermées, comme la balise rouge dans cette capture d'écran).

matchit a été proposé comme prochaine meilleure chose, mais cela nécessite une frappe supplémentaire pour utiliser ses fonctionnalités. J'aimerais pouvoir voir où les blocs de HTML commencent et finissent sans pression supplémentaire sur une touche.

J'ai parcouru Internet pour trouver quelque chose comme ça pour Vim. Apparemment, je ne suis pas le seul, selon 2 autres StackOverflowquestions et nabble .

Je me suis presque résigné à ne pas pouvoir faire correspondre visuellement les balises html avec vim. Est-ce que vim peut le faire?

Addendum: S'il n'est actuellement pas possible de faire cela avec des plugins existants, y a-t-il un assistant de vimscript qui indique comment aborder l'écriture d'un plugin approprié?

177
linqq

Je devais travailler avec du HTML aujourd'hui, alors je pensais pouvoir m'y attaquer. Ajout d'un ftplugin à vim.org qui devrait résoudre votre problème.

Vous pouvez l'obtenir ici sur vim.org .

Vous pouvez l'obtenir ici sur github .

J'espère que ça marche pour toi. Dites moi si vous avez le moindre problème.

214
Greg Sexton

Le plugin MatchTag.vim de Greg est génial, mais je voulais quelque chose de plus. Je voulais que les balises englobantes soient toujours mises en évidence , et pas seulement lorsque le curseur se trouve sur l'une des balises.

J'ai donc écrit MatchTagAlways qui fait tout ce que fait le MatchTag de Greg et met toujours en surbrillance la balise englobante, où que le curseur se trouve dans le code. Il fonctionne également avec les balises non fermées et les langages de modélisation HTML tels que Jinja ou Handlebars.

Voici un GIF le montrant en action:

MTA in action

91
Valloric