Ich habe mich gefragt, wie Syntaxfaltung am besten für HTML-Dateien verwendet werden kann. Insbesondere, wenn Javascript-Code in <script>
Tags erkannt werden kann .
Ich habe getippt, set foldmethod=syntax
aber es scheint nicht zu falten. Muss ich meiner .vimrc noch etwas hinzufügen?
Ich weiß, dass ich zum Beispiel Javascript hinzufügen muss let javaScript_fold=1
, bin mir aber nicht sicher, ob ich etwas Ähnliches für HTML hinzufügen muss.
Vielen Dank!
folding
filetype-html
Sergio
quelle
quelle
Antworten:
Dies
'foldmethod'
ist eine fensterlokale Option. Das Einstellen von Ihrem~/.vimrc
hat nicht unbedingt den richtigen Effekt.Da die
html
Syntaxfaltung an den Dateityp gebunden ist , gehören diese Einstellungen zu~/.vim/after/ftplugin/html.vim
:Dies hängt davon
filetype plugin on
ab~/.vimrc
, was Sie wahrscheinlich in Ihrem haben. Sie können dort auch andere verwandte Optionen konfigurieren, zfoldcolumn=4
.Beachten Sie auch, dass das Standard-HTML-Syntax-Skript (ab Vim 7.4.1830) bisher nur ein mehrzeiliges Tag selbst faltet, nicht den Text zwischen dem öffnenden und dem schließenden Tag .
Also, das wird gefaltet:
Das geht aber nicht:
Um dies zu erreichen, müssen Sie das Syntax-Skript erweitern, z. B. über Folgendes, das am besten in
~/.vim/after/syntax/html.vim
:Alternative 1
Das Falten wird zwischen allen außer leeren HTML-Elementen durchgeführt (solchen, die kein schließendes Geschwister haben, wie
<br>
). Beigetragen von @zanona; Vielen Dank!Alternative 2
Folding erfolgt zwischen bestimmten ausdrücklich Struktur benannt (zB
<head>
), Absatzebene (zB<p>
,<li>
) und Zusatz (zB<script>
) HTML - Tags.quelle
expr
benutzerdefinierte Methode, die ich verwende, jedoch die Syntaxfaltung für CSS und Javascript deaktiviert. Wenn Siesyntax
Javascript und CSS verwenden, haben Sie erwartungsgemäß Falten, aber keines der HTML-Tags? Irgendwelche Ideen?fold
.