Deaktivieren der teilweisen HTML-Einrückung in Vim

9

Vorsichtsmaßnahme: Ich bin kein Webentwickler.

Abgesehen davon gibt es seltene Fälle, in denen ich HTML bearbeiten muss. Wenn ich das tue, habe ich ein Verhalten in Vim bemerkt, das mir nicht gefällt, und hoffe, dass ich es über die Konfiguration ändern kann.

Wenn ich codiere, neige ich dazu, Zeilen mit 80 Zeichen zu umbrechen. Dies bedeutet oft, dass ich HTML-Tags über Zeilen aufteilen muss. Was ich möchte, ist eine vernünftige Einrückung, wenn dies passiert. So könnte ich zum Beispiel den folgenden Code haben und möchte, dass er ähnlich eingerückt wird:

<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>

Standardmäßig werden durch die automatische Indentation von Vim die geteilten HTML-Tags auf dieselbe Ebene eingerückt wie das HTML-Tag in der vorherigen Zeile. Mit anderen Worten, ich bekomme so etwas wie das Folgende:

<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>

Welches ist genau das, was ich nicht will. Während ich tippe, muss ich ständig zurückgehen und Einrückungen wie diese korrigieren.

Ich mag Vims Autoindent im Allgemeinen und möchte es nicht einfach universell deaktivieren. Ich möchte lieber nur den geteilten HTML-Tag-Einzug deaktivieren oder ändern, aber ich kann nicht herausfinden, wie.

Kann man das ändern?

(Ich habe versucht, Stackoverflow nach dieser Frage zu durchsuchen, konnte sie jedoch nicht finden. Wenn es sich um ein Duplikat handelt, verweisen Sie mich bitte auf das Original.)

BEARBEITEN: Die Lösung wurde hier gefunden: https://www.reddit.com/r/vim/comments/3ogbna/disabling_partial_html_indentation_in_vim/cvy8p3u

EDIT # 2: Okay, die obige Lösung hat das Problem nicht gelöst. Es ist immernoch da.

Criswell
quelle
1
Ich finde das Einrückungsbeispiel, das Sie im letzten Snippet gegeben haben, überraschend: Ich habe es in meiner Vanilla Homebrew-Installation (Version 7.4) ausprobiert und es funktioniert wie erwartet: wenn ich am Ende der Zeile die <Eingabetaste> drücke, mit autoindentaktiviertem vim rückt die nächste Zeile als die Zeile ein, die ich gerade beendet habe. Ich vermute also, dass Sie möglicherweise ein Plugin haben, das das Standard-Einrückungsmodell ändert.
Vlad GURDIGA
@VladGURDIGA, ja, ich fange an, das zu vermuten. Ich muss in mein vimrc eintauchen und sehen, was ich mir einfallen lassen kann. Mein vimrc ist hier, übrigens github.com/criswell/meh/blob/master/vim/.vimrc
criswell
Überprüfen Sie auch ~ / .vim /, da auch alles geladen ist, was sich dort befindet, normalerweise ftplugins, Farben und andere Autoload-Dinge. 8-)
Vlad GURDIGA
Ich habe auch auf reddit gefragt und diese Antwort erhalten, die sich als behoben herausstellte . Reddit.com/r/vim/comments/3ogbna/… . Ich werde meine Frage entsprechend aktualisieren.
Criswell
Nett! Vielen Dank für das Follow-Through! :)
Vlad GURDIGA

Antworten:

4

Ich empfehle das tidy-html5 Plugin.


Als Webentwickler empfehle ich außerdem, die HTML-Tags etwas anders auszurichten.

AirBnb React Styleguide (am besten lesbar)

<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 (häufiger)

<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>

Dies wird Formatierern wirklich helfen, verrückte Einrückungen zu vermeiden.

Atav32
quelle