Dacă aveți nevoie doar de indentare fără introducerea unor noi linii de rupere, puteți aplica comanda indent-region
la întregul buffer cu următoarele apăsări de taste:
C-x h
C-M-\
Dacă trebuie, de asemenea, să introduceți linii de rupere, astfel încât etichetele de deschidere și închidere să fie pe linii separate, puteți utiliza următoarea funcție foarte frumoasă, scrisă de Benjamin Ferrari . Am gasit-o pe blogul sau si sper ca este bine sa o reproduc aici:
(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"))
(indent-region begin end))
(message "Ah, much better!"))
Acest lucru nu se bazează pe un instrument extern cum ar fi Tidy.