Mam plik z XML w jednym wierszu. Czy funkcjonalność już istnieje, aby sformatować ten bufor tak, aby był nieco czytelny dla użytkownika?
formatting
nxml
xml
wdkrnls
źródło
źródło
Odpowiedzi:
Oczywiście i masz wiele opcji. Prawdopodobnie podałbym go do zewnętrznego programu za pomocą:
Ten program pochodzi z
libxml2
. Możesz także użyćtidy
. Oto lista narzędzi do formatowania XML wiersza poleceń: /programming/16090869/how-to-pretty-print-xml-from-the-command-lineMożesz także wyszukać i zastąpić, a następnie wciąć:
M-% > < RET > C-q C-j < RET ! C-M-\
Zgrabna sztuczka: możesz skopiować i wkleić powyższy ciąg do
M-:
(eval-expression
) w następujący sposób:źródło
C-u
przedrostka.Wbudowany
sgml-mode
ma polecenie, aby to zrobić:sgml-pretty-print
. Jeśli jesteś wnxml-mode
środku, wygląda na to, że musisz przełączyć nasgml-mode
pierwszy. Możesz napisać polecenie, aby tymczasowo przełączyć się do trybu sgml, uruchomić ładny wydruk, a następnie wrócić z powrotem do trybu nxml.Na przykład, oto polecenie, które wydrukuje region całkiem ładnie, opcjonalnie z włączonym automatycznym wypełnianiem:
źródło
napisz to w swoim
~/.emacs.d/init.el
:przeładuj emacsa, a następnie po prostu zadzwoń
M-x reformat-xml
źle sformatowany bufor xml.źródło: https://davidcapello.com/blog/emacs/reformat-xml-on-emacs/
źródło
Postępując zgodnie z podaną wyżej odpowiedzią i zakładając, że
tidy
zainstalowałeś wersję, może to być:Spowoduje to otwarcie nowego bufora
*Shell Command Output*
zamiast bezpośredniej zamiany zawartości bufora. Po sprawdzeniu wyniku zamień starą zawartość na nową na:wybierz sugerowaną wartość domyślną, która prawdopodobnie będzie
*Shell Command Output*
. Możesz zapisać polecenie na później za pomocą makra klawiatury:Dzięki temu możesz wykonać,
M-x pretty-xml
aby sformatować bufor.źródło
Zaznacz swój plik xml i wykonaj:
Lub po prostu uruchom polecenie bez zaznaczonego regionu, aby upiększyć cały bufor.
źródło