Eu tenho um arquivo com xml tudo em uma linha. A funcionalidade já existe para reformatar esse buffer para ser um pouco legível pelo usuário?
formatting
nxml
xml
wdkrnls
fonte
fonte
Respostas:
Claro, e você tem muitas opções. Eu provavelmente iria alimentá-lo para um programa externo usando:
Este programa vem com
libxml2
. Você também pode usartidy
. Aqui está uma lista de ferramentas de formatação de linha de comando xml: /programming/16090869/how-to-pretty-print-xml-from-the-command-lineVocê também pode fazer uma pesquisa e substituir e depois recuar:
M-% > < RET > C-q C-j < RET ! C-M-\
Truque: você pode copiar e colar a string acima em
M-:
(eval-expression
) assim:fonte
C-u
prefixo.A built-in
sgml-mode
tem um comando para fazer isso:sgml-pretty-print
. Se você estiver participandonxml-mode
, parece que precisa mudar para osgml-mode
primeiro. Você pode escrever um comando para alternar temporariamente para o modo sgml, executar pretty-print e retornar ao modo nxml.Por exemplo, aqui está um comando que imprimirá bastante a região, opcionalmente com o preenchimento automático ativado:
fonte
escreva isto no seu
~/.emacs.d/init.el
:recarregue o emacs e chame
M-x reformat-xml
o buffer xml mal formatado.fonte: https://davidcapello.com/blog/emacs/reformat-xml-on-emacs/
fonte
Seguindo a dica da resposta acima, e supondo que você tenha
tidy
instalado uma variação, pode ser:Isso abrirá um novo buffer em
*Shell Command Output*
vez de substituir diretamente o conteúdo do buffer. Após verificar o resultado, substitua o conteúdo antigo pelo novo por:escolha o padrão sugerido que provavelmente será
*Shell Command Output*
. Você pode salvar o comando para mais tarde com uma macro do teclado:Com isso, você pode executar
M-x pretty-xml
para reformatar o buffer.fonte
Marque seu xml e faça:
Ou apenas execute o comando sem uma região marcada para prettificar todo o buffer.
fonte