Frage

Wie behebe ich den Einzug seiner großen HTML-Dateien, die alle vermasselt wurde?

Ich habe versucht, die üblichen “ gg = G“Befehl , das ist, was ich verwende, um die Vertiefung von Code-Dateien zu beheben. Doch es schien nicht richtig auf HTML-Dateien zu arbeiten. Es ist einfach entfernt alle Formatierungen.

Ich habe auch versucht Einstellung :filetype = xml, um zu sehen, ob es in trickst das Denken eine XML-Datei wurde helfen würde, aber es hat immer noch nicht tun.

War es hilfreich?

Lösung

Mit filetype indent on in meinem .vimrc, Vim Einzüge HTML-Dateien ganz gut.

Einfaches Beispiel mit einem shiftwidth von 2:

<html>
  <body>
    <p>
    text
    </p>
  </body>
</html>

Andere Tipps

Es gibt mehrere Dinge, die alles an seinem Platz sein müssen. Nur zusammenzufassen, sie alle an einem Ort:

Stellen Sie die folgende Option:

:filetype indent on
:set filetype=html           # abbrev -  :set ft=html
:set smartindent             # abbrev -  :set si

Dann entweder den Cursor an den Anfang der Datei und indent zum Ende bewegen: gg =G
Oder den gewünschten Text auswählen einrücken und drücken Sie = es einrücken.

Das Hauptproblem des Smart-Einzug ist, dass, wenn die XML (oder HTML) auf einer Linie liegt, wie es zurück von einem curl Anfrag kann am Ende kommt dann gg=G nicht den Trick. Stattdessen habe ich gerade erleben eine gute Vertiefung mit ordentlich direkt aufgerufen von VI:

:!tidy -mi -xml -wrap 0 %

Das sagt im Grunde VI zur Reinigung ordentlich rufen Einwickeln einer XML-Datei nicht die Zeilen, um sie auf dem Standard 68 Zeichen breite Linien passen zu machen. Ich verarbeitet eine große 29MB XML-Datei, und es dauerte 5 oder 6 Sekunden. Ich denke, für eine HTML-Datei sollte der Befehl daher sein:

:!tidy -mi -html -wrap 0 %

Wie in den Kommentaren erwähnt, tidy ist ein grundlegendes Werkzeug, das Sie auf vieler Basis Linux / MacOS-Systemen finden konnten. Hier die Seite ist projet, falls Sie es wünschen Sie hatte es aber nicht. HTML Tidy

Hope Dies könnte helfen.

Wie tylerl oben erklärt folgende Einstellungen vor:

:filetype indent on
:set filetype=html
:set smartindent

Jedoch!

Beachten Sie, dass in vim 7.4 die HTML-Tags html, head, body und einige andere sind nicht eingerückt standardmäßig. Dies macht Sinn, da fast alle Inhalte in einer HTML-Datei unter diesen Tags fallen. Wenn Sie wirklich wollen, können Sie diese Tags bekommen wie so eingerückt werden:

:let g:html_indent_inctags = "html,body,head,tbody" 

Siehe hier und hier für weitere Informationen.

Das ist meine Lösung, die gut für das Öffnen „hässlich“ HTML in einer schön Abstand Art und Weise funktioniert:

vim fileIn.html -c "set sw=2 | %s/>/>\r/ | execute 'normal gg=G' | set nohlsearch | g/^\\s*\$/d"

Der sw Befehl ist, weil mein Standard-4 ist, die für HTML zu hoch ist.

Der nächste Teil fügt eine neue Zeile (Vim denkt, es ist ein Wagenrücklauf, seufz) nach jedem Element (>)

Dann re-indent die gesamte Datei mit =

Dann hebt sie > (da ich in meinem vimrc set hlsearch)

Dann entfernen Sie alle leeren / Leerzeichen-only Linien (siehe hier für weitere, auch diese Doppel entkommen, weil es in der Schale)

ist

Sie können sogar | wq! fileOut.html am Ende hinzufügen, wenn Sie überhaupt Vim nicht eingeben möchten, sondern einfach die Datei aufzuräumen.

Ich benutze dieses Skript: https://github.com/maksimr/vim-jsbeautify

In dem obigen Link, den Sie alle Informationen haben:

  1. Installieren
  2. Konfigurieren (Kopie aus dem ersten Beispiel)
  3. Ausführen :call HtmlBeautify()

Ist die Arbeit schön!

Haben Sie versucht, den HTML-Einzug Skript auf der Vim Seite?

Hier ist eine schwergewichtige Lösung, die Sie einrücken wird, sowie alle die HTML ziemlich Drucken Sie müssen nicht kümmern, während Sie gerade bearbeiten.

Zuerst laden Tidy . Stellen Sie sicher, dass Sie die binäre zu Ihrem Pfad hinzufügen, so dass Sie es von jedem Ort nennen.

Als Nächstes erstellen Sie eine Konfigurationsdatei zur Beschreibung Ihrer bevorzugten HTML-Geschmack. Die Dokumentation ist nicht gut für Ordentlich, aber hier ist ein Überblick und eine Liste von alle Optionen . Hier ist meine Config-Datei:

bare: yes
break-before-br: no
clean: yes
drop-proprietary-attributes: yes
fix-uri: yes
indent-spaces: 4
indent: yes
logical-emphasis: yes
markup: yes
output-xhtml: yes
quiet: yes
quote-marks: yes
replace-color: yes
tab-size: 4
uppercase-tags: no
vertical-space: yes
word-2000: yes
wrap: 0

Speichern Sie diese als tidyrc_html.txt in Ihrem ftplugin Ordner (unter vimfiles).

Eine weitere Datei: Fügen Sie die folgende Zeile (oder erstellen) html.vim, auch in ftplugin:

map <leader>tidy :%! tidy -config ~/vimfiles/ftplugin/tidyrc_html.txt <CR>

Um es zu verwenden, nur eine HTML-Datei öffnen, und geben Sie /tidy. (Das / ist der <leader> Schlüssel.)

Dort gehen Sie! Nicht eine schnelle Lösung, mit irgendwelchen Mitteln, aber jetzt bist du ein bisschen besser ausgestattet für die Bearbeitung dieser riesigen, verkorksten HTML-Dateien.

Sie können integrieren sowohl ordentlich und html-verschönern automatisch durch die Installation von Plugin vim -autoformat . Danach können Sie ausführen je nachdem, welcher Formatierer mit einem einzigen Tastendruck installiert ist.

  

habe ich versucht, die üblichen „gg = G“ Befehl, das ist, was ich verwenden, um die Vertiefung von Code-Dateien zu beheben. Doch es schien nicht richtig auf HTML-Dateien zu arbeiten. Es ist einfach entfernt alle Formatierungen.

Wenn Vims Autoformat / indent gg=G scheint „gebrochen“ zu sein (wie jede Zeile Einrücken links), höchstwahrscheinlich der Einzug Plugin ist nicht aktiviert / geladen. Es sollte wirklich eine Fehlermeldung geben, anstatt nur schlecht Einrücken tun, sonst Mitglieder halten nur das Autoformat / Einrücken Funktion ist schrecklich, wenn es eigentlich ziemlich gut ist.

Um zu überprüfen, ob der Einzug Plugin aktiviert ist / geladen, laufen :scriptnames. Sehen Sie, wenn .../indent/html.vim in der Liste ist. Wenn nicht, dann bedeutet, dass das Plugin nicht geladen ist. In diesem Fall fügen Sie diese Zeile ~/.vimrc:

filetype plugin indent on

Nun, wenn Sie die Datei öffnen und ausführen :scriptnames, sollten Sie .../indent/html.vim sehen. Dann läuft gg=G, die jetzt das richtige Autoformat / indent tun sollten. (Obwohl es nicht Zeilenumbrüche hinzufügen, so dass, wenn alle HTML-Code auf einer einzigen Zeile ist, wird es nicht eingerückt).

. Hinweis: wenn Sie :filetype plugin indent on auf der Vim Befehlszeile statt ~/.vimrc ausgeführt werden, müssen Sie erneut öffnen Sie die Datei :e

Auch Sie brauchen sich nicht um autoindent und smartindent Einstellungen zu kümmern, sie für diese nicht relevant sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top