xml в emacs
- http://web-mode.org/ - о web-mode
- https://lgfang.github.io/mynotes/emacs/emacs-xml.html - про nxml-mode
(setq nxml-child-indent 4 nxml-attribute-indent 4)
- установить отступ в nxml-mode в 4 пробела.
- https://emacs.stackexchange.com/questions/20931/how-do-i-edit-an-xml-file-in-emacs-with-tag-autocompletion-from-a-known-xsd-sche
- https://github.com/aki2o/auto-complete-nxml
- flycheck - умеет проверять xml.
- https://www.ibm.com/developerworks/library/x-emacs/index.html - настройки psgml.
- https://www.emacswiki.org/emacs/PsgmlMode
- https://github.com/wbolster/emacs-xml-format Emacs package to make it easy to reformat XML files using the xmllint utility. xmllint is is part of libxml2, and available from most software repositories, e.g. apt install libxml2-utils on Debian/Ubuntu.
- https://www.emacswiki.org/emacs/CategoryXML - чо в емаксе для xml
- https://www.ibm.com/developerworks/library/x-emacs/index.html - дааавняя статья про емакс для редактирования xml
- sgml-mode
- sgml-pretty-print — оччень полезно для приличного форматирования всякого xml. 2023-11-21
- https://www.reddit.com/r/emacs/comments/5c1xu7/is_there_something_like_this_for_emacs/ - web-mode, show-smart-parens-mode - о подсветке тегов
языки разметки XML/SGML/HTML - psgml-mode. Тока ссыль
Для работы с текстами, для которых используются языки разметки XML/SGML/HTML, существует режим psgml. Данный режим существенно облегчает разметку текстов, позволяя вставлять теги и добавлять атрибуты для них. При этом psgml делает разбор документа и анализирует его DTD (определение типа документа), что позволяет использовать дополнение при вводе имён тегов, а также корректно редактировать атрибуты тегов. Вставка тегов также допускается только в тех местах, где это разрешено определением типа документа. Это позволяет уменьшить количество ошибок при разметке документов. http://alexott.net/ru/writings/altlinux-emacs/ (Alex Ott Емакс для начинающих Last change: 05.03.2013 16:54) Ну, реально применяю nxml, и пока это лучшее, что получается.
Моды
noxml-fold
Summary: Fold away XML things.
Homepage: https://github.com/paddymcall/noxml-fold Keywords: xml folding Maintainer: Patrick McAllister <pma@rdorte.org> Author: Patrick McAllister <pma@rdorte.org>
This is an Emacs minor mode that tries to enable useful folding for XML files, copying a lot from AUCTeX's tex-fold.el. It presupposes that nxml-mode is the major-mode.
The most useful entry points for users are `noxml-fold-dwim', and `noxml-fold-region'.
Since this mode uses overlays, it does not scale: for very long/deeply nested XML, you should only fold what's within view, or make use of `narrow-to-region'.
Завернуть регион в тег
Готового удобного мне ответа пока нет, но кое-что найденное.
- https://github.com/rejeep/wrap-region.el/blob/master/wrap-region.el
- https://stackoverflow.com/questions/1558178/wrap-selection-in-open-close-tag-like-textmate
- https://emacs.stackexchange.com/questions/3499/how-to-wrap-given-text-around-region
- http://ergoemacs.org/emacs/emacs_html_wrap_tags.html
- https://github.com/rejeep/wrap-region.el
- https://www.emacswiki.org/emacs/AutoPairs
- http://ergoemacs.org/emacs/emacs_html_insert_tags.html
- http://ergoemacs.org/emacs/wrap-url.html
- http://ergoemacs.org/emacs/emacs_html_wrap_tags.html
wrap-mode
wrap-region is a minor mode that wraps a region with punctuations. For tagged markup modes, such as HTML and XML, it wraps with tags.
Then require wrap-region: (require 'wrap-region)
To start wrap-region: (wrap-region-mode t) or M-x wrap-region-mode
If you only want wrap-region active in some mode, use hooks: (add-hook 'ruby-mode-hook 'wrap-region-mode)
Or if you want to activate it in all buffers, use the global mode: (wrap-region-global-mode t)
To wrap a region, select that region and hit one of the punctuation keys. In "tag-modes"" (see `wrap-region-tag-active-modes'), "<" is replaced and wraps the region with a tag. To activate this behavior in a mode that is not default:
(add-to-list 'wrap-region-tag-active-modes 'some-tag-mode)
`wrap-region-table' contains the default punctuations that wraps. You can add and remove new wrappers by using the functions `wrap-region-add-wrapper' and `wrap-region-remove-wrapper' respectively.
(wrap-region-add-wrapper "`" "'") ; hit ` then region -> `region' (wrap-region-add-wrapper "" "" "") ; hit / then region -> /*region* (wrap-region-add-wrapper "\(" "\)" nil 'latex-mode) ; hit $ then region -> \(region\) in latex-mode (wrap-region-remove-wrapper "(") (wrap-region-remove-wrapper "$" 'latex-mode)
Some modes may have conflicting key bindings with wrap-region. To avoid conflicts, the list `wrap-region-except-modes' contains names of modes where wrap-region should not be activated (note, only in the global mode). You can add new modes like this: (add-to-list 'wrap-region-except-modes 'conflicting-mode)