Est-ce que vim peut mettre en évidence les balises HTML correspondantes comme Notepad++?

VIM a le soutien pour les paires de crochets bouclés, les parenthèses, et les crochets. C'est parfait pour éditer des langages de style C comme PHP et Javascript. Mais qu'en est-il des balises HTML correspondantes?

Notepad++ possède cette fonctionnalité depuis que je l'utilise. Être capable de repérer où les blocs de HTML commencent et se terminent est très utile. Ce que je cherche, c'est quelque chose comme ça pour vim (voir les étiquettes vertes div):

(un Bonus: mettre en évidence les balises HTML non verrouillées, comme la balise rouge dans cette capture d'écran).

matchit a été proposé comme la prochaine meilleure chose, mais il nécessite une touche supplémentaire pour utiliser sa fonctionnalité. J'aimerais pouvoir voir où les blocs de HTML commencent et se terminent sans une touche supplémentaire.

j'ai parcouru internet pour trouver quelque chose comme ça pour vim. Apparemment, je ne suis pas la un seul, selon 2 autres StackOverflow 1519170920 "questions et nabble .

j'ai presque résigné moi-même à vim ne pas être capable de faire correspondre visuellement les balises html. Est-ce possible pour vim de faire ça?

Addendum: S'il n'est actuellement pas possible de le faire avec des plugins existants, est-ce que l'un des assistants vimscript a des conseils sur la façon d'aborder l'écriture d'un plugin approprié?

174
demandé sur Community 2011-11-17 17:59:44

3 réponses

j'ai dû travailler avec du HTML aujourd'hui donc j'ai pensé que je m'y attaquerais. Ajouté un ftplugin à vim.org ça devrait résoudre ton problème.

vous pouvez l'obtenir ici sur vim.org .

Vous pouvez l'obtenir ici sur github .

J'espère que ça vous va. Laissez-moi savoir si vous avez des problèmes.

212
répondu Greg Sexton 2011-11-22 19:17:12

match de Greg.vim plugin est génial, mais je voulais quelque chose de plus. Je voulais que les balises de soient toujours surlignées, pas seulement lorsque le curseur est sur l'une des balises.

donc j'ai écrit MatchTagAlways qui fait tout ce que le MatchTag de Greg fait et souligne aussi toujours l'étiquette enveloppante, peu importe où le curseur est dans le code. Il fonctionne également avec des tags non-clos et des langages de templating HTML comme Jinja ou Guidon.

Voici un GIF montrant en action:

MTA in action

86
répondu Valloric 2013-01-27 21:00:03

je suis venu ici à la recherche d'une correspondance entre les consoles d'angle de style html dans Vim. Cela semble fonctionner:

:set mps+=<:>
:help matchpairs
-2
répondu Chris X 2012-08-11 15:23:06