Wenn Sie nur einen hübschen Einzug benötigen, ohne neue Zeilenumbrüche einzuführen, können Sie den indent-region
Befehl mit den folgenden Tastenanschlägen auf den gesamten Puffer anwenden :
C-x h
C-M-\
Wenn Sie auch Zeilenumbrüche einführen müssen, damit sich das Öffnen und Schließen von Tags in getrennten Zeilen befindet, können Sie die folgende sehr schöne Elisp-Funktion verwenden, die von Benjamin Ferrari geschrieben wurde . Ich habe es auf seinem Blog gefunden und hoffe, dass ich es hier reproduzieren kann:
(defun bf-pretty-print-xml-region (begin end)
"Pretty format XML markup in region. You need to have nxml-mode
http://www.emacswiki.org/cgi-bin/wiki/NxmlMode installed to do
this. The function inserts linebreaks to separate tags that have
nothing but whitespace between them. It then indents the markup
by using nxml's indentation rules."
(interactive "r")
(save-excursion
(nxml-mode)
(goto-char begin)
(while (search-forward-regexp "\>[ \\t]*\<" nil t)
(backward-char) (insert "\n") (setq end (1+ end)))
(indent-region begin end))
(message "Ah, much better!"))
Dies hängt nicht von einem externen Tool wie Tidy ab.
wrong type argument: stringp, nil