Table of Contents
With the following dot.emacs file, it's really simple to add Docbook TAGS. You also need to install emacs-psgml.
C+c / or Esc Esc c close an open tag
C+c p add para
C+c c add "xml version='1.0' encoding="ISO-8859-1" tag
C+c t add title
C+c u add link, you need to specify url
C+c s add sect1
C+c d add sect2
C+c e add emphasis with role=bold
C+c g add graphic
C+c l add itemizedlist tag
C+c i add a listitem in itemizedlist
C+c < add < element
C+c > add > element
F3 backward up element
F4 backward down element
(add-to-list 'auto-mode-alist '("\\.pm$" . cperl-mode)) (add-to-list 'auto-mode-alist '("\\.pl$" . cperl-mode)) (add-to-list 'auto-mode-alist '("\\.xml$" . sgml-mode)) (setq auto-mode-alist (append '(("\.sgml$" . sgml-mode)) auto-mode-alist)) (menu-bar-mode -1) (tool-bar-mode -1) (display-time) (scroll-bar-mode -1) (auto-compression-mode 1) (setq inhibit-startup-message t) (fset 'yes-or-no-p 'y-or-n-p) (setq display-time-24hr-format t) (setq column-number-mode t) (display-time) (custom-set-faces) (standard-display-european t) (iso-accents-mode t) (require 'iso-insert) (set-language-environment 'latin-1) (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0) (global-set-key "\C-h" 'delete-backward-char) (global-set-key [backspace] 'delete-backward-char) (global-set-key [deletechar] 'delete-char) (autoload 'sgml-mode "psgml" "My Most Major Mode" t) (autoload 'xml-mode "psgml" "Major Mode for XML" t) (add-to-list 'load-path "/usr/share/emacs/site-lisp/psgml") (setq sgml-mode-hook '(lambda () "Defaults for SGML mode." (auto-fill-mode) (setq show-trailing-whitespace t) (setq fill-column 80) (setq sgml-auto-activate-dtd t) (setq sgml-indent-data 20) (setq sgml-warn-about-undefined-entities nil) (setq sgml-warn-about-undefined-elements nil) (setq xml-lite-electric-slash t) (setq sgml-ignore-undefined-entities nil))) (setq-default sgml-set-face t) (make-face 'sgml-comment-face) (make-face 'sgml-doctype-face) (make-face 'sgml-end-tag-face) (make-face 'sgml-entity-face) (make-face 'sgml-ignored-face) (make-face 'sgml-ms-end-face) (make-face 'sgml-ms-start-face) (make-face 'sgml-pi-face) (make-face 'sgml-sgml-face) (make-face 'sgml-short-ref-face) (make-face 'sgml-start-tag-face) ; doc book fonctions (defun sgml-adds-para () "Insert para tags and position cursor." (interactive) (sgml-insert-element 'para)) (defun sgml-adds-sect1 () "Insert sect1 tags and position cursor." (interactive) (sgml-insert-element 'sect1) (sgml-insert-element 'title)) (defun sgml-adds-sect2 () "Insert sect2 tags and position cursor." (interactive) (sgml-insert-element 'sect2) (sgml-insert-element 'title)) (defun sgml-adds-emphasis () "Insert emphasis tags and position cursor." (interactive) (sgml-insert-element 'emphasis) (forward-char -1) (insert " role=\"bold\"") (forward-char 1)) (defun sgml-adds-itemizedlist () "Insert itemizedlist tags and position cursor." (interactive) (sgml-insert-element 'itemizedlist) (sgml-insert-element 'listitem) (sgml-insert-element 'para)) (defun sgml-adds-listitem() "Insert listitem tags and position cursor." (interactive) (sgml-insert-element 'listitem) (sgml-insert-element 'para)) (defun sgml-adds-ulink () "Insert a URL." (interactive) (sgml-insert-element 'ulink) (forward-char -1) (insert " url=\"\"") (forward-char 1)) (defun sgml-adds-graphic () "Insert graphic tags and position cursor." (interactive) (sgml-insert-element 'figure) (sgml-insert-element 'title) (sgml-next-data-field) (insert "<graphic format=\"PNG\" fileref=\"\"/>")) (defun sgml-adds-lt () "Insert ISO entity reference for less-than." (interactive) (insert "<")) (defun sgml-adds-gt () "Insert ISO entity reference for great-than." (interactive) (insert ">")) (defun sgml-adds-xml () "Insert xml entity reference" (interactive) (insert "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>")) ; doc book shortcut (global-set-key (kbd "<f4>") 'sgml-next-data-field) (global-set-key (kbd "\e\ec") 'sgml-insert-end-tag) (global-set-key (kbd "\C-cp") 'sgml-adds-para) (global-set-key (kbd "\C-cc") 'sgml-adds-xml) (global-set-key (kbd "\C-ct") 'sgml-adds-title) (global-set-key (kbd "\C-cu") 'sgml-adds-ulink) (global-set-key (kbd "\C-cs") 'sgml-adds-sect1) (global-set-key (kbd "\C-cd") 'sgml-adds-sect2) (global-set-key (kbd "\C-ce") 'sgml-adds-emphasis) (global-set-key (kbd "\C-cg") 'sgml-adds-graphic) (global-set-key (kbd "\C-cl") 'sgml-adds-itemizedlist) (global-set-key (kbd "\C-ci") 'sgml-adds-listitem) (global-set-key (kbd "\C-c<") 'sgml-adds-lt) (global-set-key (kbd "\C-c>") 'sgml-adds-gt) (global-set-key (kbd "<f3>") 'sgml-backward-up-element) ; doc book color (set-face-foreground 'sgml-comment-face "dark magenta") (set-face-foreground 'sgml-doctype-face "red") (set-face-foreground 'sgml-end-tag-face "yellow") (set-face-foreground 'sgml-entity-face "magenta") (set-face-foreground 'sgml-ignored-face "gray40") (set-face-foreground 'sgml-ms-end-face "green") (set-face-foreground 'sgml-ms-start-face "deep yellow") (set-face-foreground 'sgml-pi-face "lime green") (set-face-foreground 'sgml-sgml-face "brown") (set-face-foreground 'sgml-short-ref-face "deep sky blue") (set-face-foreground 'sgml-start-tag-face "green") (setq-default sgml-markup-faces '((comment . sgml-comment-face) (doctype . sgml-doctype-face) (end-tag . sgml-end-tag-face) (entity . sgml-entity-face) (ignored . sgml-ignored-face) (ms-end . sgml-ms-end-face) (ms-start . sgml-ms-start-face) (pi . sgml-pi-face) (sgml . sgml-sgml-face) (short-ref . sgml-short-ref-face) (start-tag . sgml-start-tag-face))) (defun docbook-mode () (sgml-mode))