Comment plier / déplier les balises HTML avec Vim
6 réponses
j'ai trouvé zfat
(ou, de même, zfit
) fonctionne bien pour le pliage avec des documents HTML. za
bascule (ouvrir ou fermer) un pli. zR
ouvre tous les plis du document actuel, zM
réactive effectivement tous les plis existants marqués dans le document.
si vous utilisez beaucoup de plis, vous pourriez faire quelques reliures de clés pratiques pour vous - même dans votre .vimrc.
si vous indentez votre HTML, ce qui suit devrait fonctionner:
set foldmethod=indent
Le problème avec cela, je trouve, est qu'il y a trop "de 151990920" plis. Pour contourner cela, j'utilise zO
et zc
pour ouvrir et fermer imbriquée plis, respectivement.
Voir help fold-indent
pour plus d'informations:
The folds are automatically defined by the indent of the lines.
The foldlevel is computed from the indent of the line, divided by the
'shiftwidth' (rounded down). A sequence of lines with the same or higher fold
level form a fold, with the lines with a higher level forming a nested fold.
The nesting of folds is limited with 'foldnestmax'.
Some lines are ignored and get the fold level of the line above or below it,
whichever is lower. These are empty or white lines and lines starting
with a character in 'foldignore'. White space is skipped before checking for
characters in 'foldignore'. For C use "#" to ignore preprocessor lines.
When you want to ignore lines in another way, use the 'expr' method. The
indent() function can be used in 'foldexpr' to get the indent of a line.
Installer js-embellir "151930920 de la commande" (version JavaScript)
npm -g install js-beautify
wget --no-check-certificate https://www.google.com.hk/ -O google.index.html
js-beautify -f google.index.html -o google.index.bt.html
http://www.google.com.hk original html:
js-embellir et vim fois:
ajouter à la réponse de James Lai. Initialement, ma syntaxe foldmethod=donc zfat ne fonctionnera pas. La Solution est de régler la méthode de foldemethode à la main
:setlocal foldmethod=manual
pour vérifier quelle méthode est utilisée,
:setlocal foldmethod?
HTML pliant avec la syntaxe de foldmethod, qui est plus simple.
cette réponse est basée sur pliage de syntaxe HTML dans vim . l'auteur est @Ingo Karcat.
-
définissez la syntaxe de votre méthode fold avec la suivante:
vim ligne de commande
:set foldmethod=syntax
ou mettre le réglage dans
~/.vim/after/ftplugin/html.vim
setlocal foldmethod=syntax
-
Notez aussi que jusqu'à présent, le script de syntaxe par défaut ne plie qu'un multi-ligne étiquette elle-même, pas le texte entre l'étiquette d'ouverture et de fermeture.
So, this gets folded: <div class="foo" id="bar" > And this doesn't <div> <b>text between here</b> </div>
-
pour être plié entre les tags, vous devez étendre le script de syntaxe, via le suivant, meilleur endroit dans
~/.vim/after/syntax/html.vim
le pliage syntaxique est effectué entre tous les éléments html sauf les éléments nuls (ceux qui n'ont pas un frère ou une sœur de fermeture, comme
<br>
)syntax region htmlFold start="<\z(\<\(area\|base\|br\|col\|command\|embed\|hr\|img\|input\|keygen\|link\|meta\|para\|source\|track\|wbr\>\)\@![a-z-]\+\>\)\%(\_s*\_[^/]\?>\|\_s\_[^>]*\_[^>/]>\)" end="</\z1\_s*>" fold transparent keepend extend containedin=htmlHead,htmlH\d
tout D'abord set foldmethod=syntax
et essayez zfit
pour plier l'étiquette de départ et zo
pour déplier les étiquettes, cela fonctionne bien sur mon vim.