nXML modeの設定とアウトライン操作メモ
設定
ファイル名: ~/.emacs
;; 全般の設定 (add-hook 'nxml-mode-hook (lambda () (setq nxml-slash-auto-complete-flag t) ; 「/」で終了タグを自動的に入力 (setq nxml-child-indent 1) ; インデント幅 (setq indent-tabs-mode nil) ; スペースでインデント (setq tab-width 1) ; タブ幅 ; アウトライン表示で使える要素名 (setq nxml-section-element-name-regexp "article\\|\\(sub\\)*section\\|chapter\\|div\\|appendix\\|part\\|preface\\|reference\\|simplesect\\|bibliography\\|bibliodiv\\|glossary\\|glossdiv\\|sect[1-5]\\|articleinfo") ) ) ;; 色設定 (custom-set-faces '(nxml-comment-delimiter-face ((t (:foreground "#66e6e6")))) ; <!-- --> '(nxml-comment-content-face ((t (:foreground "#f69933")))) ; コメント '(nxml-delimited-data-face ((t (:foreground "LightSalmon")))) ; 属性値やDTD引数値など '(nxml-delimiter-face ((t (:foreground "LightSalmon")))) ; <> <? ?> "" '(nxml-element-local-name-face ((t (:foreground "PaleGreen")))) ; 要素名 '(nxml-element-colon-face ((t (:foreground "LightSteelBlue")))) ; :(xsl:paramなど) '(nxml-name-face ((t (:foreground "LightGoldenrod")))) ; 属性名など '(nxml-ref-face ((t (:foreground "LightSkyBlue")))) ; <など '(nxml-tag-slash-face ((t (:foreground "LightSkyBlue")))) ; /(終了タグ) ) ;; 拡張子の関連付け (setq auto-mode-alist (cons '("\\.\\(xml\\|xsl\\|xsd\\|rng\\|x?html\\)\\'" . nxml-mode) auto-mode-alist ) )
配色は、独自のものを作るより、他のモードで使用されている配色をベースにして
のような感じにした。
DocBook文書を作成する際にアウトライン表示させられるように、nxml-section-element-name-regexpに要素名を追加している。
アウトライン操作
詳細は、nXML modeのinfoを参照。
キー操作は
- 3段階のキー入力だが、全てCtrlキーを押したまま
- Ctrl+c Ctrl+oまでが共通
- 折り畳まれた部分は、Enterでも展開できる
といった感じで、あとは慣れ。必要に応じて、使用頻度の高いものを別のキーに割り当てるのもあり。
(2007/7/20)使用頻度の高いCtrl+c Ctrl+o Ctrl+tとCtrl+c Ctrl+o Ctrl+aは、メニューからも実行できる。
キー | 処理 |
---|---|
Ctrl+c Ctrl+o Ctrl+t | 全てのセクションの中身のみ折り畳む(タイトルは見える) |
Ctrl+c Ctrl+o Ctrl+a | 全てのセクションを、中身も含めて展開 |
Ctrl+c Ctrl+o Ctrl+c | 現在のセクションの中身のみ折り畳む |
Ctrl+c Ctrl+o Ctrl+e | 現在のセクションの中身のみ展開 |
Ctrl+c Ctrl+o Ctrl+d | 現在のセクションとサブセクション以下全てを折り畳んで1行にする(サブセクションがあると「+」表示になる) |
Ctrl+c Ctrl+o Ctrl+s | 現在のセクションとサブセクション以下を全て展開 |
Ctrl+c Ctrl+o Ctrl+l | 現在のセクションとサブセクションの中身のみ、それぞれ折り畳む(タイトルだけ見える状態になる) |
Ctrl+c Ctrl+o Ctrl+k | 現在のセクションとサブセクション以下を展開するが、中身は展開しない(「+」表示になっているところで使用) |
Ctrl+c Ctrl+o Ctrl+i | 1つ下のサブセクションのみ展開するが、中身は展開しない(「+」表示になっているところで使用) |
Ctrl+c Ctrl+o Ctrl+o | 現在のセクション以外を全て「+」表示で1行に折り畳む |
関連記事: