Désactiver l'indentation HTML partielle dans Vim

9

Avertissement: je ne suis pas développeur Web.

Cela étant dit, il y a de rares occasions où je dois modifier du HTML. Quand je le fais, j'ai remarqué un comportement dans Vim que je n'aime pas et j'espère pouvoir changer via la configuration.

Lorsque je code, j'ai tendance à encapsuler les lignes à 80 caractères. Cela signifie souvent que je dois diviser les balises HTML sur plusieurs lignes. Ce que j'aimerais, c'est une indentation sensible lorsque cela se produit. Ainsi, par exemple, je pourrais avoir le code suivant et je voudrais qu'il soit mis en retrait de la même manière:

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg"><img
   src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
   class="ri" alt="This is an image"></a>

Mais, par défaut, l'auto-indentation de Vim mettra en retrait les balises HTML fractionnées au même niveau que le début de la balise HTML sur la ligne précédente. En d'autres termes, je reçois quelque chose comme ceci:

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg"><img
                                                              src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
                                                              class="ri" alt="This is an image"></a>

C'est exactement ce que je ne veux pas. Pendant que je tape, je trouve que je dois constamment revenir en arrière et corriger des indentations comme celle-ci.

J'aime l'auto-indentation de Vim en général, et je ne veux pas simplement le désactiver universellement. Je préfère simplement désactiver ou modifier l'indentation de la balise HTML divisée, mais je ne sais pas comment.

Est-il possible de changer cela?

(J'ai essayé de rechercher Stackoverflow pour cette question, mais je ne l'ai pas trouvée. S'il s'agit d'un doublon, veuillez me diriger vers l'original.)

EDIT: La solution a été trouvée ici https://www.reddit.com/r/vim/comments/3ogbna/disabling_partial_html_indentation_in_vim/cvy8p3u

EDIT # 2: D'accord, la solution ci-dessus n'a pas résolu le problème. C'est toujours là.

criswell
la source
1
Je trouve surprenant l'exemple d'indentation que vous avez donné dans le dernier extrait: je l'ai essayé sur mon installation vanille Homebrew (version 7.4) et cela fonctionne comme je m'y attendais: quand je tape <Entrée> à la fin de la ligne, avec autoindentvim activé met en retrait la ligne suivante comme la ligne que je viens de terminer. Donc, je suppose que vous pouvez avoir un plugin qui modifie le modèle d'indentation par défaut.
Vlad GURDIGA du
@ VladGURDIGA, oui, je commence à soupçonner cela. Je vais devoir plonger dans mon vimrc et voir ce que je peux trouver. Mon vimrc est ici, btw github.com/criswell/meh/blob/master/vim/.vimrc
criswell
vérifiez également ~ / .vim / car tout ce qui s'y trouve est également chargé, généralement des plugins ftp, des couleurs et d'autres choses à chargement automatique. 8-)
Vlad GURDIGA
J'ai également demandé sur reddit, et j'ai obtenu cette réponse, qui s'est avérée la corriger reddit.com/r/vim/comments/3ogbna/… . Je mettrai à jour ma question en conséquence.
criswell
Agréable! Merci pour le suivi! :)
Vlad GURDIGA

Réponses:

4

Je recommande le plugin tidy-html5 .


En tant que développeur Web moi-même, je recommande également d'aligner les balises HTML un peu différemment,

Guide de style AirBnb React (le plus lisible)

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg">
  <img
    src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
    class="ri"
    alt="This is an image"
  >
</a>

Google HTML Styleguide (plus courant)

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg">
  <img src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
       class="ri" alt="This is an image">
</a>

Cela aidera vraiment les formateurs à éviter les indentations folles.

Atav32
la source