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.
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
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>
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.