emacs: HTML Mode
25.12 SGML and HTML Modes
=========================
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.
‘C-c C-n’
Interactively specify a special character and insert the SGML
‘&’-command for that character (‘sgml-name-char’).
‘C-c C-t’
Interactively specify a tag and its attributes (‘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
supplied.)
‘C-c C-a’
Interactively insert attribute values for the current tag
(‘sgml-attributes’).
‘C-c C-f’
Skip across a balanced tag group (which extends from an opening tag
through its corresponding closing tag) (‘sgml-skip-tag-forward’).
A numeric argument acts as a repeat count.
‘C-c C-b’
Skip backward across a balanced tag group (which extends from an
opening tag through its corresponding closing tag)
(‘sgml-skip-tag-backward’). A numeric argument acts as a repeat
count.
‘C-c C-d’
Delete the tag at or after point, and delete the matching tag too
(‘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.
‘C-c ? TAG <RET>’
Display a description of the meaning of tag TAG (‘sgml-tag-help’).
If the argument TAG is empty, describe the tag at point.
‘C-c /’
Insert a close tag for the innermost unterminated tag
(‘sgml-close-tag’). If called within a tag or a comment, close it
instead of inserting a close tag.
‘C-c 8’
Toggle a minor mode in which Latin-1 characters insert the
corresponding SGML commands that stand for them, instead of the
characters themselves (‘sgml-name-8bit-mode’).
‘C-c C-v’
Run a shell command (which you must specify) to validate the
current buffer as SGML (‘sgml-validate’).
‘C-c <TAB>’
Toggle the visibility of existing tags in the buffer. This can be
used as a cheap preview (‘sgml-tags-invisible’).
The major mode for editing XML documents is called 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 ‘M-<TAB>’, as well as
on-the-fly XML validation with error highlighting. To enable nXML mode
in an existing buffer, type ‘M-x nxml-mode’, or, equivalently, ‘M-x
xml-mode’. Emacs uses nXML mode for files which have the extension
‘.xml’. For XHTML files, which have the extension ‘.xhtml’, Emacs uses
HTML mode by default; you can make it use nXML mode by customizing the
variable ‘auto-mode-alist’ (Choosing Modes). nXML mode is
described in its own manual: nXML Mode (nxml-mode)Top.
You may choose to use the less powerful SGML mode for editing XML,
since XML is a strict subset of SGML. To enable SGML mode in an
existing buffer, type ‘M-x sgml-mode’. On enabling SGML mode, Emacs
examines the buffer to determine whether it is XML; if so, it sets the
variable ‘sgml-xml-mode’ to a non-‘nil’ value. This causes SGML mode’s
tag insertion commands, described above, to always insert explicit
closing tags as well.