Wie behebe ich den Einzug seiner riesigen HTML-Dateien, die alle durcheinander waren?
Ich habe den üblichen "gg=G
Befehl ausprobiert , mit dem ich das Einrücken von Codedateien korrigiere. Bei HTML-Dateien schien es jedoch nicht richtig zu funktionieren. Es wurden einfach alle Formatierungen entfernt.
Ich habe auch versucht, Einstellungen :filetype = xml
vorzunehmen, um zu sehen, ob es hilfreich ist, zu glauben, dass es sich um eine XML-Datei handelt, aber das hat es immer noch nicht getan.
html
vim
vi
indentation
mmcdole
quelle
quelle
Es gibt mehrere Dinge, die alle vorhanden sein müssen. Um sie alle an einem Ort zusammenzufassen:
Stellen Sie die folgende Option ein:
Bewegen Sie dann entweder den Cursor an den Anfang der Datei und rücken Sie bis zum Ende ein:
gg
=G
Oder wählen Sie den gewünschten Text zum Einrücken aus und =drücken Sie, um ihn einzurücken.
quelle
home.html
. Ich habe kein Problem damit, .php-Dateien einzurücken. Hier haben Sie meine .vimrc: pastebin.com/FAJ0MCA9vim 7.4
die Standardeinrückungseinstellungen für dieses Beispiel als , fehlschlagen und standardmäßig nicht eingerückt sind. Siehe diese Antwort .html
body
p
smartindent
ist nicht notwendig. Außerdem ist es auf C und C ++ abgestimmt. Ich bevorzuge es,autoindent
stattdessen allgemeinere zu verwenden.Das Hauptproblem bei der Verwendung der intelligenten Einrückung besteht darin, dass, wenn sich das XML (oder HTML) in einer Zeile befindet, da es möglicherweise von einer Curl-Anforderung zurückkommt, dies
gg=G
nicht ausreicht. Stattdessen habe ich gerade eine gute Einrückung mit ordentlich direkt aus VI aufgerufen erlebt:Dies weist VI grundsätzlich an, ordentlich aufzurufen, um eine XML-Datei zu bereinigen, ohne die Zeilen zu umbrechen, damit sie in die standardmäßig 68 Zeichen breiten Zeilen passen. Ich habe eine große 29-MB-XML-Datei verarbeitet und es dauerte 5 oder 6 Sekunden. Ich denke für eine HTML-Datei sollte der Befehl daher lauten:
Wie in den Kommentaren erwähnt,
tidy
handelt es sich um ein grundlegendes Tool, das Sie auf vielen Linux / MacOS-Basissystemen finden können. Hier ist die Seite des Projekts, falls Sie es wünschen, aber nicht: HTML Tidy .quelle
Stellen Sie, wie oben erläutert, Folgendes ein:
Beachten Sie jedoch, dass in vim 7.4 die HTML - Tags
html
,head
,body
, und einige andere sind nicht standardmäßig eingerückt. Dies ist sinnvoll, da fast der gesamte Inhalt einer HTML-Datei unter diese Tags fällt. Wenn Sie wirklich möchten, können Sie diese Tags wie folgt einrücken lassen:Weitere Informationen finden Sie unter " HTML-Einzug funktioniert in kompiliertem Vim 7.4 nicht, irgendwelche Ideen? " Und " Alternatives HTML-Einrückungsskript ".
quelle
Dies ist meine Lösung, die sich gut zum Öffnen von "hässlichem" HTML in einem gut verteilten Abstand eignet:
sw
Befehl ist, weil mein Standardwert 4 ist, was für HTML zu hoch ist.>
) eine neue Zeile hinzu (Vim glaubt, es sei ein Wagenrücklauf, seufz ).=
.>
(da ichset hlsearch
in meinem vimrc habe).Sie können sogar
| wq! fileOut.html
am Ende hinzufügen , wenn Sie Vim überhaupt nicht eingeben möchten, sondern nur die Datei bereinigen möchten.quelle
:%s/>\s*/>\r/g
(eing
für globales Ersetzen hinzugefügt und\s*
nachgestellte Leerzeichen entfernt). Ich habe auch hinzugefügt:%s/</\r</g
, um eine neue Zeile vor der offenen Klammer hinzuzufügen. Andernfalls würden Tags<td>foo</td>
wie<td>
und geteiltfoo</td>
.Ich benutze dieses Skript: https://github.com/maksimr/vim-jsbeautify
Im obigen Link haben Sie alle Informationen:
:call HtmlBeautify()
Macht den Job wunderbar!
quelle
Haben Sie versucht, das HTML-Einrückungsskript auf der Vim-Site zu verwenden?
quelle
/usr/share/vim/vim74/indent/html.vim
. B. ) geliefert . "2014 Jul 04: Vim 7.4.356 oder höher enthält einen Nachkommen dieses Skripts (das offizielle Skript wird jetzt von Bram gepflegt und enthält massive Änderungen)"Hier ist eine schwergewichtige Lösung, mit der Sie einrücken können, sowie all das hübsche HTML-Drucken, um das Sie sich beim Bearbeiten nicht unbedingt kümmern möchten.
Laden Sie zuerst Tidy herunter . Stellen Sie sicher, dass Sie die Binärdatei zu Ihrem Pfad hinzufügen, damit Sie sie von jedem Ort aus aufrufen können.
Erstellen Sie als Nächstes eine Konfigurationsdatei, die Ihre bevorzugte HTML-Variante beschreibt. Die Dokumentation ist für Tidy nicht besonders gut, aber hier ist eine Übersicht und eine Liste aller Optionen . Hier ist meine Konfigurationsdatei:
Speichern Sie dies wie
tidyrc_html.txt
in Ihremftplugin
Ordner (unter vimfiles).Noch eine Datei: Fügen Sie die folgende Zeile hinzu (oder erstellen Sie sie)
html.vim
, auch inftplugin
:Um es zu verwenden, öffnen Sie einfach eine HTML-Datei und geben Sie ein
/tidy
. (Das/
ist der<leader>
Schlüssel.)Los geht's! Auf keinen Fall eine schnelle Lösung, aber jetzt sind Sie ein bisschen besser gerüstet, um diese riesigen, durcheinandergebrachten HTML-Dateien zu bearbeiten.
quelle
Sie können sowohl ordentlich als auch HTML-Verschönerung automatisch integrieren, indem Sie das Plugin vim-autoformat installieren . Danach können Sie den installierten Formatierer mit einem einzigen Tastendruck ausführen.
quelle
Wenn vims Autoformat / Einzug
gg=G
"defekt" zu sein scheint (z. B. das Einrücken jeder Zeile nach links), ist das Einrückungs-Plugin höchstwahrscheinlich nicht aktiviert / geladen. Es sollte wirklich eine Fehlermeldung geben, anstatt nur ein schlechtes Einrücken durchzuführen, andernfalls denken Benutzer einfach, dass die Funktion zum automatischen Formatieren / Einrücken schrecklich ist, wenn sie tatsächlich ziemlich gut ist.Führen Sie aus, um zu überprüfen, ob das Einrückungs-Plugin aktiviert / geladen ist
:scriptnames
. Überprüfen Sie, ob.../indent/html.vim
in der Liste enthalten ist. Wenn nicht, bedeutet dies, dass das Plugin nicht geladen ist. Fügen Sie in diesem Fall diese Zeile hinzu zu~/.vimrc
:Wenn Sie nun die Datei öffnen und ausführen
:scriptnames
, sollten Sie sehen.../indent/html.vim
. Führen Sie dann ausgg=G
, was jetzt das richtige automatische Formatieren / Einrücken bewirken sollte. (Obwohl keine Zeilenumbrüche hinzugefügt werden. Wenn sich der gesamte HTML-Code in einer einzelnen Zeile befindet, wird er nicht eingerückt.)Hinweis: Wenn Sie statt in
:filetype plugin indent on
der vim-Befehlszeile ausgeführt werden~/.vimrc
, müssen Sie die Datei erneut öffnen:e
.Auch Sie sich keine Sorgen machen müssen über
autoindent
undsmartindent
Einstellungen, sie sind nicht relevant für diese.quelle