如何在Emacs中编辑和验证XML

admin 百科 12
Emacs通过xml-mode和nxml-mode提供良好XML编辑支持,含语法高亮、缩进、格式化、校验与补全;推荐启用nxml-mode,集成xmllint实现验证,并用sgml-pretty-print或xmllint --format美化代码。

如何在Emacs中编辑和验证XML-第1张图片-佛山资讯网

Emacs 对 XML 编辑支持良好,配合内置和少量扩展即可实现语法高亮、缩进、格式化、校验与补全。关键在于合理配置 major mode 和验证工具链。

启用 xml-mode 并优化基础编辑体验

Emacs 自带 xml-mode,打开 .xml 文件会自动激活。它提供基本的标签匹配、缩进和括号高亮。可添加以下设置提升可用性:

  • 启用 electric-indent-mode(默认开启),让回车和 自动缩进
  • 开启 show-paren-mode,快速定位匹配的开始/结束标签
  • 添加 (setq xml-sexp-element-name-face 'font-lock-function-name-face) 让标签名更醒目
  • C-c C-oxml-toggle-xml-declaration)快速插入或删除 XML 声明

使用 nxml-mode 替代默认 xml-mode(推荐)

nxml-mode 是更现代、功能更强的 XML 模式(包含在 GNU Emacs 22+ 中),支持 RELAX NG 验证、结构导航和实时错误提示:

  • .emacsinit.el 中加入:
    (add-to-list 'auto-insert-alist '(xml . "XML skeleton"))
    (add-to-list 'auto-insert-alist '(nxml . "XML skeleton"))
  • .xml 关联到 nxml-mode
    (add-to-list 'auto-insert-alist '(xml . "XML skeleton"))
    (add-to-list 'auto-insert-alist '(nxml . "XML skeleton"))
    更稳妥的方式是:
    (add-to-list 'auto-insert-alist '(xml . "XML skeleton"))
    (add-to-list 'auto-insert-alist '(nxml . "XML skeleton"))
  • 启用后,用 C-c C-s 查看当前光标所在元素的完整路径,C-c C-r 重命名标签,C-c C-e 关闭当前标签

集成外部验证器(如 xmllint)进行语法与 DTD/XSD 校验

Emacs 本身不内建 XML Schema 验证,但可通过 flycheckcompile 调用 xmllint 实现即时校验:

标签: linux 编码 工具 mac macos cos

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~