The major modes for SGML and HTML provide indentation support and commands for operating on tags. HTML mode is a slightly customized variant of SGML mode.
sgml-tag). This command asks you for a tag name and for the attribute values, then inserts both the opening tag and the closing tag, leaving point between them.
With a prefix argument n, the command puts the tag around the
n words already present in the buffer after point. Whenever a
region is active, it puts the tag around the region (when Transient
Mark mode is off, it does this when a numeric argument of −1 is
sgml-skip-tag-forward). A numeric argument acts as a repeat count.
sgml-skip-tag-backward). A numeric argument acts as a repeat count.
sgml-delete-tag). If the tag at or after point is an opening tag, delete the closing tag too; if it is a closing tag, delete the opening tag too.
sgml-tag-help). If the argument tag is empty, describe the tag at point.
sgml-close-tag). If called from within a tag or a comment, close this element instead of inserting a close tag.
The default mode for editing XML documents is called nXML mode
nxml-mode). This is a powerful major mode
that can recognize many existing XML schema and use them to provide
completion of XML elements via C-<RET> or M-<TAB>,
as well as “on-the-fly” XML validation with error highlighting. It
is described in its own manual. See .
However, you can also use SGML mode to edit XML, since XML is a
strict subset of SGML. In XML, every opening tag must have an
explicit closing tag. When the variable
nil, the tag insertion commands described above always
insert explicit closing tags as well. When you visit a file in SGML
mode, Emacs determines whether it is XML by examining the file
contents, and sets