two side open indent files automatic html vim formatting macvim

side - Formato y sangrado HTML en Vim



vim split editor (3)

Para un mejor resultado, debe utilizar programas de formato externo especializados.

Puede integrar tidy y html-beautify automáticamente instalando el complemento vim-autoformat . Después de eso, puede ejecutar cualquier formateador instalado con una sola pulsación de tecla.

Actualmente tengo un gran archivo HTML que no tiene saltos de línea y solo aparece en una sola línea.

Quiero formatearlo en vim (macvim en particular). Probé las siguientes opciones, pero ninguna de ellas me ha funcionado.

  • Seleccioné el texto y presioné =. Esto solo va a intentar automáticamente el código. Pero como el código completo está presente en una línea, no hace nada.
  • Probé este complemento http://www.vim.org/scripts/script.php?script_id=3613 Este tipo de trabajo, pero insertará saltos de línea solo para la etiqueta actual. Quiero que todo el archivo sea formateado

¿Hay alguna manera de hacer esto usando un complemento o de otra manera?

¡Gracias!


Sería mejor usar la utilidad tidy, como se describe en esta respuesta .

Ya se han escrito buenas herramientas para este trabajo.


Una forma de comenzar es dividir todas las etiquetas en sus propias líneas.

:s/<[^>]*>//r&/r/g :g/^$/d

Si tiene < o > símbolos flotantes (p. Ej., HTML no válido, operadores de comparación de JavaScript, parte del selector descendiente directo de CSS), esto no funcionará correctamente y podría cambiar a algo como simplemente hacer etiquetas finales - <//[^>]*> . Proporciona un comienzo sólido, de todos modos.

Demostración:

Con un documento idealizado como este,

<!DOCTYPE html><html><head><title>hello</title></head><body>world</body></html>

Esto produce esto:

<!DOCTYPE html> <html> <head> <title> hello </title> </head> <body> world </body> </html>

Entonces, = producirá lo que quieres:

<!DOCTYPE html> <html> <head> <title> hello </title> </head> <body> world </body> </html>