HTML-Formatierung funktioniert nicht in der kompilierten Vim 7.4, irgendwelche Ideen?
Bei dem Versuch, um vim
Einzug .html
Dateien richtig, ich folgte den Beispielen hier.
Angesichts der folgenden Datei index.html
:
<html>
<body>
<p>
text
</p>
</body>
</html>
Ich habe versucht, es zu öffnen wie so (ignoriert meine .vimrc
um sicherzustellen, dass Sie nicht stören negativ)
vim -u NONE index.html
Dann setze ich die Optionen zum aktivieren der automatischen Einrücken:
:filetype plugin indent on
:set filetype=html # abbrev - :set ft=html
:set smartindent # abbrev - :set si
Und dann bin ich eingerückt die gesamte Datei mit gg=G
, und das ist das Ergebnis:
<html>
<body>
<p>
text
</p>
</body>
</html>
Ich überprüft, um sicherzustellen, dass die html.vim
Datei existiert, und es ist definitiv dort
$ head -2 ~/.vim/after/ftplugin/html.vim
" Vim syntax file
" Language: HTML
$ head -2 ~/.vim/ftplugin/html.vim
" Vim syntax file
" Language: HTML
Meine version von vim 7.4:
$ vim --version | head -1
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Sep 23 2013 16:12:20)
Werden, und es enthält smart indent:
$ vim --version | grep smartindent
-ebcdic +mouse +smartindent +xim
Bin ich ratlos, warum der Einzug nicht funktioniert! Irgendwelche Hinweise oder Ideen, um Forschung zu diesem problem weiter?
FWIW, ich bin mit Ubuntu 13.04.
- Ich habe das gleiche problem auf Mac OS X und wieder 7.3 für die Zeit. Ich bin sicher, es gibt etwas zu finden, in der runtime-Dateien, though.
- Fragen, auf die vim_use oder vim_dev mailing-Liste. Das ist der richtige Kanal für potenzielle Fehler.
- Ich bin eigentlich über IRC und jetzt haben wir es eingeengt zu einer Veränderung der Laufzeiten zwischen 7.3 und 7.4.
- Dank geht an Sie für führende mich in diese Richtung. Ich werde, um herauszufinden, welche spezifischen ändern, bricht es und sehen, ob ich nicht behaupte, dass da eine Veränderung.
- 'smartindent' hat eigentlich genau null Effekt für HTML wenn Sie aktivieren Sie die Dateityp-spezifische Einrücken mit "filetype plugin indent on". Und wenn Sie am Ende mit einer Datei, wo smartindent gelten, denke ich du wirst enttäuscht werden. "smart" Einrücken...naja...nicht
- Haben Sie das problem behoben?
- Ja, siehe zwei Antworten weiter unten.
- Ich habe versucht, all die Lösungen hier, aber keine Arbeit für mich. Wenn ich
gg=G
sagt er, "12 Zeilen eingerückt", aber es ist nur Links Gedankenstrich jede Zeile. Und ich habe<tr>
und<td>
als gut. Bei mir lief:scriptnames
es aufgeführt 3 Dateien:1: /usr/share/vim/vim74/filetype.vim
,2: /usr/share/vim/vim74/ftplugin.vim
,3: /usr/share/vim/vim74/indent.vim
. Ich wollte nicht sehenhtml.vim
sollte, die da sein? - Endlich kapiert. Ich hatte, um re-öffnen Sie die Datei mit
:e
nach Einstellung:filetype plugin indent on
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie bereits in Cory Antwort, die aktuell verteilte version ist Vimscript 2075. Wenn Sie gehen, um das plugin-Seite können Sie sehen, dokumentiert alle tags, die standardmäßig Einzug vergrößern.
Keiner von den tags, die Sie gab, in Ihrem Beispiel sind in dieser Standard-Liste, aber es gibt viele von Ihnen.
Seit Einrückung der HTML-ist sehr offen für user-Einstellungen, plugin-maintainer hat eine option zum hinzufügen oder entfernen von tags oder aus der Liste der tags, das erhöht den Gedankenstrich. Siehe :Hilfe html-Einzug, wo Sie es vermuten:
<script>
, die ist, wo ich wirklich wollen, dass die Einrückung? (Der fix funktioniert mithtml
,head
, undbody
tags, aber ich bin damit einverstanden, dass der Einzug dort würde eine Verschwendung.)<script>
- tag, den html-Einzug Skript versucht, Gedankenstrich nach der Sprache, in den tag. Zum Beispiel, es wird Gedankenstrich javascript nachcindent()
Einstellungen. Allerdings sehen:help html-indent
: bewerben können Sie sich einen ersten Einzugsebene entweder<style>
oder<script>
- tags-mit built-in option Variablen.Zwischen den Versionen 7.3 und 7.4, die gebündelt
html.vim
- Datei befindet sich im$VIMRUNTIME/indent
geändert. Die aktuell verteilte version ist eigentlich Vimscript #2075, und es nicht Einzug einigehtml
tags standardmäßig.Empfehle ich Ben ' s Lösung oben, aber alternativ können Sie eine frühere version wiederherstellen der verteilten
html.vim
Datei.Um dies zu tun, ersetzen Sie einfach die vorhandene 7.4
html.vim
Datei mit der von 7.3.:let g:html_indent_inctags = "html,body,head,tbody"
die derzeit auf halbem Weg unten auf der Seite ist nicht sehr kommunikativ genug.Als der 7.4.52
innerhalb von vim:
anderes .vimrc:
Ich wollte nur zum hinzufügen dieser zu einem Kommentar über die top-Antwort zurück zu geben, nachdem er zu viel Zeit nicht bekommen, die Antwort zu arbeiten, aber anscheinend nicht genug Ruf 🙁
E117: Unknown function: HtmlIndent_CheckUserSettings
auf vim 7.4.1689Den ersten Schritt der Fehlerbehebung ist zu laufen
:scriptnames
. Wenn Sie nicht sehen.../indent/html.vim
sind, dann heißt das das plugin nicht richtig geladen ist und die Einzüge nicht mehr richtig funktioniert. Es wird wohl nur der linke Einzug jeder Zeile. (Das problem ist, dass vim nicht geben einen Fehler, so scheint es, die Einrücken, tut einen schrecklichen job.)Der zuverlässigste Weg, um es arbeiten ist, setzen Sie diese Zeile in Ihre
~/.vimrc
.Dann öffnen Sie die Datei mit vim erneut, und führen Sie
:scriptnames
. Sie sollten sehen.../indent/html.vim
jetzt. Geben Sie danngg=G
zu autoformat-die gesamte Datei.Ein wichtiger Hinweis, dass ausgelöst mich für eine Weile: Wenn Sie nicht setzen es in
~/.vimrc
und geben Sie einfach:filetype plugin indent on
nachdem Sie die Datei geöffnet haben, haben Sie, um re-öffnen Sie die Datei erneut mit:e
. Der Einzug plugin geladen werden muss vor Sie die Datei öffnen. Führen Sie:scriptnames
zu bestätigen.Seite Hinweis: Sie brauchen nicht zu sorgen über
smartindent
oderautoindent
Einstellungen, die sind für etwas anderes.