¿Cómo soluciono la sangría de sus enormes archivos html que estaban en mal estado?
Intenté el "gg=G
comando habitual , que es lo que uso para arreglar la sangría de los archivos de código. Sin embargo, no parecía funcionar bien en archivos HTML. Simplemente eliminó todo el formato.
También intenté configurar :filetype = xml
, para ver si engañarlo para que pensara que este era un archivo XML ayudaría, pero aún no lo hizo.
html
vim
vi
indentation
mmcdole
fuente
fuente
Hay varias cosas que todos necesitan estar en su lugar. Solo para resumirlos todos en una ubicación:
Establezca la siguiente opción:
Luego, mueva el cursor hacia la parte superior del archivo y aplique sangría hasta el final:
gg
=G
o seleccione el texto deseado para aplicar sangría y presione =para aplicar sangría.
fuente
home.html
. No tengo ningún problema para sangrar archivos .php. Aquí tienes mi .vimrc: pastebin.com/FAJ0MCA9vim 7.4
el valor por defecto la configuración de sangrado se fallará en este ejemplo, comohtml
,body
yp
no se aplica sangría por defecto. Mira esta respuesta .smartindent
no es necesario También está ajustado para C y C ++, prefiero usar más general en suautoindent
lugar.El principal problema al usar la sangría inteligente es que si el XML (o HTML) se encuentra en una línea, ya que puede terminar regresando de una solicitud curl, entonces
gg=G
no funcionará. En cambio, acabo de experimentar una buena sangría usando tidy directamente llamado desde VI:Básicamente, esto le dice a VI que llame a tidy para limpiar un archivo XML que no ajuste las líneas para que quepan en las líneas predeterminadas de 68 caracteres de ancho. Procesé un gran archivo XML de 29 MB y tardó 5 o 6 segundos. Supongo que para un archivo HTML, el comando debería ser:
Como se menciona en los comentarios,
tidy
es una herramienta básica que puede encontrar en muchos sistemas base Linux / MacOS. Aquí está la página del proyecto en caso de que desee tenerlo pero no lo haga: HTML Tidy .fuente
Como tylerl explica anteriormente, configure lo siguiente:
Sin embargo, nota que, en vim 7.4 las etiquetas HTML
html
,head
,body
, y algunos otros son no sangran por defecto. Esto tiene sentido, ya que casi todo el contenido en un archivo HTML cae bajo esas etiquetas. Si realmente quieres, puedes hacer que esas etiquetas se sangran así:Consulte "La sangría HTML no funciona en Vim 7.4 compilado, ¿alguna idea? " Y " Script alternativo de sangría html " para obtener más información.
fuente
Esta es mi solución que funciona bien para abrir HTML "feo" de una manera bien espaciada:
sw
comando se debe a que mi valor predeterminado es 4, que es demasiado alto para HTML.>
).=
.>
(ya que tengoset hlsearch
en mi vimrc).Incluso puede agregar
| wq! fileOut.html
al final si no desea ingresar a Vim, pero simplemente limpie el archivo.fuente
:%s/>\s*/>\r/g
(agregué ung
reemplazo global y\s*
para eliminar el espacio en blanco al final). También agregué:%s/</\r</g
para agregar una nueva línea antes del corchete abierto. De lo contrario, las etiquetas como<td>foo</td>
se dividirían como<td>
yfoo</td>
.Yo uso este script: https://github.com/maksimr/vim-jsbeautify
En el enlace de arriba tienes toda la información:
:call HtmlBeautify()
¡Hace el trabajo maravillosamente!
fuente
¿Has intentado usar el script de sangría HTML en el sitio de Vim?
fuente
/usr/share/vim/vim74/indent/html.vim
). "04 de julio de 2014: Vim 7.4.356 o posterior incluye un descendiente de este script (el script oficial ahora es mantenido por Bram e incluye cambios masivos)"Aquí hay una solución de gran peso que le da sangría, además de todas las bonitas impresiones HTML que no necesariamente le interesan mientras está editando.
Primero, descarga Tidy . Asegúrese de agregar el binario a su ruta, para que pueda llamarlo desde cualquier ubicación.
A continuación, cree un archivo de configuración que describa su sabor HTML favorito. La documentación no es excelente para Tidy, pero aquí hay una descripción general y una lista de todas las opciones . Aquí está mi archivo de configuración:
Guarda esto como
tidyrc_html.txt
en tuftplugin
carpeta (en vimfiles).Un archivo más: agregue la siguiente línea a (o cree)
html.vim
, también enftplugin
:Para usarlo, simplemente abra un archivo HTML y escriba
/tidy
. (Esa/
es la<leader>
clave).Ahí tienes! No es una solución rápida, de ninguna manera, pero ahora estás un poco mejor equipado para editar esos enormes y desordenados archivos HTML.
fuente
Puede integrar tidy y html-beautify automáticamente instalando el complemento vim-autoformat . Después de eso, puede ejecutar el formateador que esté instalado con una sola pulsación de tecla.
fuente
Si el autoformato / sangría de vim
gg=G
parece estar "roto" (como la sangría izquierda en cada línea), lo más probable es que el complemento de sangría no esté habilitado / cargado. Realmente debería dar un mensaje de error en lugar de simplemente hacer una sangría incorrecta, de lo contrario, los usuarios solo piensan que la función de autoformato / sangría es horrible, cuando en realidad es bastante buena.Para verificar si el complemento de sangría está habilitado / cargado, ejecute
:scriptnames
. Ver si.../indent/html.vim
está en la lista. Si no, entonces eso significa que el complemento no está cargado. En ese caso, agregue esta línea a~/.vimrc
:Ahora, si abre el archivo y lo ejecuta
:scriptnames
, debería ver.../indent/html.vim
. Luego ejecutegg=G
, que debería hacer el autoformato / sangría correcto ahora. (Aunque no agregará nuevas líneas, por lo que si todo el código html está en una sola línea, no se sangrará).Nota: si está ejecutando
:filetype plugin indent on
en la línea de comando vim en lugar de~/.vimrc
, debe volver a abrir el archivo:e
.Además, usted no necesita preocuparse por
autoindent
ysmartindent
ajustes, que no son relevantes para esto.fuente