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-u
prefijo.El built-in
sgml-mode
tiene un comando para hacer esto:sgml-pretty-print
. Si estás dentronxml-mode
, parece que debes cambiar asgml-mode
primero. 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-xml
al 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
tidy
instalado 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-xml
para 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