У меня есть файл с XML все в одной строке. Функциональность уже существует, чтобы переформатировать этот буфер, чтобы быть немного читаемым пользователем?
formatting
nxml
xml
wdkrnls
источник
источник
Ответы:
Конечно, и у вас есть много вариантов. Я бы, вероятно, передал его внешней программе, используя:
Эта программа поставляется с
libxml2
. Вы также можете использоватьtidy
. Вот список инструментов форматирования XML командной строки: /programming/16090869/how-to-pretty-print-xml-from-the-command-lineВы также можете выполнить поиск и замену, а затем сделать отступ:
M-% > < RET > C-q C-j < RET ! C-M-\
Замечательный трюк: вы можете скопировать и вставить указанную выше строку в
M-:
(eval-expression
) следующим образом:источник
C-u
префикса.Встроенный
sgml-mode
имеет команду , чтобы сделать это:sgml-pretty-print
. Если вы внутри,nxml-mode
похоже, вам нужно переключиться наsgml-mode
первую. Вы можете написать команду для временного переключения в режим sgml, запустить pretty-print, а затем вернуться обратно в режим nxml.Например, вот команда, которая будет красиво печатать регион, возможно с включенным автоматическим заполнением:
источник
запишите это в свой
~/.emacs.d/init.el
:перезагрузите emacs, а затем просто вызовите
M-x reformat-xml
плохо отформатированный буфер xml.источник: https://davidcapello.com/blog/emacs/reformat-xml-on-emacs/
источник
Следуя подсказке ответа выше и предполагая, что вы
tidy
установили вариант, может быть:Это откроет новый буфер
*Shell Command Output*
вместо прямой замены содержимого буфера. После проверки результата замените старое содержимое новым:выберите предложенное значение по умолчанию, которое, вероятно, будет
*Shell Command Output*
. Вы можете сохранить команду на потом с помощью макроса клавиатуры:При этом вы можете выполнить,
M-x pretty-xml
чтобы переформатировать буфер.источник
Отметьте свой XML и сделайте:
Или просто запустите команду без отмеченной области, чтобы предварительно настроить весь буфер.
источник