Tengo un archivo con xml todo en una línea. ¿Ya existe la funcionalidad para reformatear este búfer para que el usuario pueda leerlo?
formatting
nxml
xml
wdkrnls
fuente
fuente

Respuestas:
Por supuesto, y tienes muchas opciones. Probablemente lo alimentaría a un programa externo usando:
Este programa viene con
libxml2. También podrías usartidy. Aquí hay una lista de herramientas de formato xml de línea de comandos: /programming/16090869/how-to-pretty-print-xml-from-the-command-lineTambién puede hacer una búsqueda y reemplazar y luego sangrar:
M-% > < RET > C-q C-j < RET ! C-M-\Truco ordenado: puede copiar y pegar la cadena anterior en
M-:(eval-expression) de esta manera:fuente
C-uprefijo.El built-in
sgml-modetiene un comando para hacer esto:sgml-pretty-print. Si estás dentronxml-mode, parece que debes cambiar asgml-modeprimero. Puede escribir un comando para cambiar temporalmente al modo sgml, ejecutar pretty-print y luego volver al modo nxml.Por ejemplo, aquí hay un comando que imprimirá bastante la región, opcionalmente con autocompletar habilitado:
fuente
escribe esto en tu
~/.emacs.d/init.el:vuelva a cargar emacs, luego solo llame
M-x reformat-xmlal búfer xml mal formateado.fuente: https://davidcapello.com/blog/emacs/reformat-xml-on-emacs/
fuente
Siguiendo la pista de la respuesta anterior, y suponiendo que haya
tidyinstalado una variación podría ser:Esto abrirá un nuevo búfer en
*Shell Command Output*lugar de reemplazar directamente el contenido del búfer. Después de verificar el resultado, reemplace el contenido anterior por el nuevo con:elija el valor predeterminado sugerido que probablemente sea
*Shell Command Output*. Puede guardar el comando para más tarde con una macro de teclado:Con esto puede ejecutar
M-x pretty-xmlpara formatear el búfer.fuente
Marque su xml y haga:
O simplemente ejecute el comando sin una región marcada para embellecer todo el búfer.
fuente