SGMLおよびHTMLの主要なモードでは、インデント機能やタグ操作用のコマンドが提供されています。
HTMLには2つのモードがあります。一つはhtml-modeと呼ばれる基本モードで、SGMLモードをわずかにカスタマイズしたものです。もう一つはHTMLファイルでデフォルトで使用されるmhtml-modeで、<script>要素で囲まれたJavaScriptや<style>要素に埋め込まれたCSSを適切に処理しようとします。
対話的に特殊文字を指定し、その文字に対するSGMLの‘&’コマンド(sgml-name-char)を挿入します。
タグとその属性(sgml-tag)を対話的に指定します。このコマンドでは、タグ名と属性値の入力を求め、開始タグと終了タグの両方を挿入し、その間にポイントを置きます。
接頭辞引数 n を指定すると、このコマンドはポイント以降のバッファ内に既に存在する n という単語をタグで囲みます。リージョンがアクティブなときは常にそのリージョンをタグで囲みます(一時マークモードがオフの場合は、数値引数として −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要素の補完を行ったり、エラーハイライトを伴うリアルタイムの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モードのタグ挿入コマンドが、常に明示的な終了タグも併せて挿入するようになります。