SGMLおよびHTMLのためのメジャーモードは、インデントのサポートとタグを操作するコマンドを提供します。
HTMLは2つのモードから構成されます —
1つ目はhtml-mode
と呼ばれる基本的なモードで、これは若干カスタマイズされたSGMLモードの変種です。もう1つはデフォルトでHTMLファイルに使用されるものでmhtml-mode
モードと呼ばれ、<script>
要素で囲まれたJavascript、および<style>
要素内に埋め込まれたCSSを正しく処理することを意図しています。
対話的に特殊文字を指定して、その文字に対応するSGMLの‘&’コマンドを挿入します(sgml-name-char
)。
対話的にタグとタグの属性を指定します(sgml-tag
)。このコマンドはタグ名と属性値を尋ね、開始タグと終了タグの両方を挿入し、ポイントをその間に置きます。
プレフィクス引数nを指定すると、このコマンドはバッファーのポイントの後ろにあるn個の単語の周囲にタグを配します。リージョンがアクティブなときは、タグをリージョンの周辺に配します(Transient Markモードがオフのときは、引数に−1を与えることにより、これを行います)。
対話的にカレントタグの属性値を挿入します(sgml-attributes
)。
対応の取れたタグのグループ(開始タグと対応する終了タグまでの範囲)をスキップします(sgml-skip-tag-forward
)。数引数は繰り返し回数として振る舞います。
対応の取れたタグのグループ(開始タグと対応する終了タグまでの範囲)を後方にスキップします(sgml-skip-tag-backward
)。数引数は繰り返し回数として振る舞います。
ポイント位置またはポイントの後ろのタグを削除し、それに対応するタグも削除します(sgml-delete-tag
)。ポイントの後のタグが開始タグの場合は、終了タグも削除します。終了タグの場合は、開始タグも削除します。
タグtagの意味の説明を表示します(sgml-tag-help
)。引数tagが空のときは、ポイント位置のタグを説明します。
一番内側の終了されていないタグの終了タグを挿入します(sgml-close-tag
)。タグまたはコメントの中で呼び出されたときは、終了タグを挿入するかわりにそれを終了させます。
挿入したLatin-1文字を、その文字自身ではなく、その文字を表すSGMLコマンドを挿入するマイナーモードを切り替えます(sgml-name-8bit-mode
)。
カレントバッファーをSGMLとして評価するシェルコマンド(要指定)を実行します(sgml-validate
)。(HTMLモードでは、このキーシーケンスは違うコマンドを実行する。)
バッファーの既存のタグの可視・不可視を切り替えます。これは簡単なプレビューとして使用できます(sgml-tags-invisible
)。
XMLドキュメントを編集するためのメジャーモードはnXMLモードと呼ばれます。このモードは多くの既存のXMLスキーマを認識することができ、M-TABを通じてXMLエレメントの補完、同様にエラーをハイライトするオンザフライ(on-the-fly)なXMLの妥当性検証を提供します。既存のバッファーでnXMLモードを有効にするには、M-x
nxml-modeとタイプするか、M-x
xml-modeとタイプしても同じです。Emacsは.xmlという拡張子をもつファイルにたいしてnXMLモードを使用します。.xhtmlという拡張子をもつXHTMLファイルにたいしては、デフォルトでEmacsはHTMLモードを使用します。変数auto-mode-alist
をカスタマイズすることによりnXMLモードを使用させることができます(ファイルのモードを選択するを参照してください)。
nXMLモードについては、Emacsとともに配布されているInfoマニュアルで説明されています。
XMLはSGMLの厳格なサブセットなので、XMLを編集するのに、それほど強力ではないSGMLモードの使用を選択することもできます。既存のバッファーでSGMLモードを有効にするには、M-x
sgml-modeとタイプします。SGMLを有効にするとき、EmacsはバッファーがXMLかどうかを検証します。もしXMLの場合、変数sgml-xml-mode
に非nil
値をセットします。これにより上述したSGMLモードのタグ挿入コマンドは、常に明示的に終了タグを挿入するようになります。