posicionamiento para name metadatos keywords etiquetas etiqueta codigo buscadores html vim folding fold

para - seo html



Cómo plegar/desplegar etiquetas HTML con Vim (6)

¿Hay algún plugin para plegar etiquetas HTML en Vim?
¿O hay otra forma de configurar un atajo para plegar o desplegar etiquetas html?
Me gustaría plegar / desplegar etiquetas html como lo hago con el doblado de sangría.


Añadir a la respuesta por James Lai. Inicialmente mi foldmethod = sintaxis para que zfat no funcione. La solución es configurar el método de plegado a manual.

:setlocal foldmethod=manual

para comprobar qué plegado en uso,

:setlocal foldmethod?


He encontrado que zfat (o, igualmente, zfit ) funciona bien para plegar con documentos HTML. za cambiará (abrirá o cerrará) un pliegue existente. zR abre todos los pliegues en el documento actual, zM vuelve a habilitar efectivamente todos los pliegues existentes marcados en el documento.

Si te encuentras usando pliegues extensivamente, podrías hacer algunas combinaciones de teclas útiles para ti en tu .vimrc.


Instalar el comando js-beautify (versión de 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 orignal html:

js-embellecer y doblar vim:


Plegado html con la sintaxis de foldmethod, que es más simple.

Esta respuesta se basa en el plegado de sintaxis HTML en vim . El autor es @Ingo Karcat.

  1. configura tu método de plegado para que sea sintaxis con lo siguiente:

    línea de comando vim :set foldmethod=syntax

    o ponga la configuración en ~/.vim/after/ftplugin/html.vim

    setlocal foldmethod=syntax

  2. También tenga en cuenta que hasta ahora, el script de sintaxis predeterminado solo dobla una etiqueta de varias líneas, no el texto entre la etiqueta de apertura y cierre.

    So, this gets folded: <div class="foo" id="bar" > And this doesn''t <div> <b>text between here</b> </div>

  3. Para plegarse entre etiquetas, necesita extender el script de sintaxis, a través del siguiente, el mejor lugar en ~/.vim/after/syntax/html.vim

    El plegado de sintaxis se realiza entre todos los elementos html excepto los vacíos (aquellos que no tienen un hermano de cierre, como <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


Primero set foldmethod=syntax e intente zfit para plegar la etiqueta de inicio y zo para desplegar las etiquetas. Funciona bien en mi vim.


Si usted sangra su HTML, lo siguiente debería funcionar:

set foldmethod=indent

El problema con esto, me parece, es que hay demasiados pliegues. Para zO esto, uso zO y zc para abrir y cerrar pliegues anidados, respectivamente.

Consulte la help fold-indent para obtener más información:

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.