Je me demandais quelle est la meilleure façon d'utiliser le pliage de syntaxe pour les fichiers HTML. Surtout s'il peut reconnaître le code javascript dans les <script>
balises.
J'ai tapé set foldmethod=syntax
mais il ne semble pas faire de pliage. Dois-je ajouter autre chose à mon .vimrc?
Je sais que pour javascript, par exemple, je dois ajouter let javaScript_fold=1
mais je ne sais pas si je dois ajouter quelque chose de similaire pour HTML.
Merci!
folding
filetype-html
Sergio
la source
la source
Réponses:
L'
'foldmethod'
option est une fenêtre locale; le définir à partir de votre~/.vimrc
n'a pas nécessairement le bon effet.Étant donné que le pliage de la syntaxe est lié au type de
html
fichier , ces paramètres appartiennent à~/.vim/after/ftplugin/html.vim
:Cela dépend de l'avoir
filetype plugin on
dans votre~/.vimrc
, ce que vous avez probablement. Vous pouvez également y configurer d'autres options connexes, par exemplefoldcolumn=4
.Notez également que jusqu'à présent (à partir de Vim 7.4.1830), le script de syntaxe HTML par défaut ne plie qu'une balise multiligne elle-même, pas le texte entre la balise d'ouverture et de fermeture .
Donc, cela se replie:
Mais cela ne veut pas:
Pour cela, vous devez étendre le script de syntaxe, par exemple via ce qui suit, le mieux placé dans
~/.vim/after/syntax/html.vim
:Alternative 1
Le pliage est effectué entre tous les éléments html sauf vides (ceux qui n'ont pas de frère de fermeture, comme
<br>
). Contribué par @zanona; Merci!Alternative 2
Le pliage est effectué entre certains de structure explicitement nommé (par exemple
<head>
), l' alinéa niveau (par exemple<p>
,<li>
) et accessoires (par exemple<script>
) des balises HTML.la source
expr
méthode personnalisée que j'utilise, mais qui désactive le pliage de la syntaxe pour CSS et Javascript. Lorsque vous utilisezsyntax
javascript et css ont des plis comme prévu, mais aucune des balises HTML ne le font? Des idées?fold
s'y trouve.