设置您的 .emacs

您可以利用 Emacs 的 PSGML 模式以使编辑 XML 格式更容易。PSGML 模式提供了语法高亮,标记补全等功能。
3.1. 设置您的 .emacs

为使 Emacs 可以正确解析您的 DocBook 文档,您必须定制一个 .emacs 文件。将下列内容复制并粘贴到您已有的 .emacs 文件中,或者创建一个包含下列内容的新文件:


;; turn on auto-fill in `text-mode' and derived modes
;;(mail, news, etc)
(add-hook 'text-mode-hook 'turn-on-auto-fill)

;;
;;MODES
;;

(setq auto-mode-alist (cons '("\\.sgml$" . sgml-mode) auto-mode-alist))
(setq auto-mode-alist (cons '("\\.sgm$" . sgml-mode) auto-mode-alist))

;;
;;XML!!
;;
;;#############################################################

;;
;;PSGML mode stuff
;;

(autoload 'sgml-mode "psgml" "My Most Major Mode" t)

(setq sgml-mode-hook '(lambda () "Defaults for XML mode." (turn-on-auto-fill)
(setq fill-column 80)))

(defun My-XML-keymap ()
  (local-set-key [(alt i)]
                 '(lambda ()
                    (interactive)
                    (sgml-indent-line)
                    (sgml-insert-element 'item)
                    (sgml-indent-line)))
  (local-set-key [(alt l)]
                 '(lambda ()
                    (interactive)
                    (sgml-insert-element 'list)
                    (sgml-insert-element 'item)
                    (sgml-indent-line)))
  (local-set-key [(alt p)]
                 '(lambda ()
                    (interactive)
                    (sgml-indent-line)
                    (sgml-insert-element 'para)
                    (sgml-indent-line)))
  (local-set-key [(alt -)]
                 '(lambda ()
                    (interactive)
                    (insert "—"))))      

(add-hook 'sgml-mode-hook 'My-XML-keymap)

;;
;; Fix up indentation of data...
;;

(setq-default sgml-indent-data t)

;;
;; XML markup faces.
;;

(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)

(set-face-foreground 'sgml-comment-face "maroon")
(set-face-foreground 'sgml-doctype-face "dark green")
(set-face-foreground 'sgml-end-tag-face "blue2")
(set-face-foreground 'sgml-entity-face "red2")
(set-face-foreground 'sgml-ignored-face "maroon")
(set-face-background 'sgml-ignored-face "gray90")
(set-face-foreground 'sgml-ms-end-face "maroon")
(set-face-foreground 'sgml-ms-start-face "maroon")
(set-face-foreground 'sgml-pi-face "maroon")
(set-face-foreground 'sgml-sgml-face "maroon")
(set-face-foreground 'sgml-short-ref-face "goldenrod")
(set-face-foreground 'sgml-start-tag-face "blue2")

(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)
  )



;;
;;END XML STUFF
;;
;;##################################################################

;PO mode stuff

(setq auto-mode-alist
    (cons '("\\.pox?\\'" . po-mode) auto-mode-alist))
(autoload 'po-mode "po-mode")


 (global-set-key [(f1)] (lambda () (interactive) (manual-
       entry (current-word))))


您是否有一个滚轮鼠标?如果是,那么可以将下列内容加入您的 .emacs,这样您的滚轮将可以用在 Emacs 中 (适于 Emacs 版本 21):

      
;; Enable wheelmouse support by default for emacs 21
(cond (window-system
(mwheel-install)
))

   

如果您使用旧的 20 版本,应添加下列内容:

     
;; Enable wheelmouse support by default
(require 'mwheel)

 » 相关连接:
用emacs进行16进制编辑 用emacs编辑HTML c/c++/php/java/python/html/xml模 ECB使用技巧
emacs日程管理日历 EMACS下的五笔字型输入法 常见问题 Emacs下FTP
emacs编辑命令速查 GNU/Linux实战手记之Emacs篇
[回复]
在您的 ~/.Xresources 中配置 Emacs 的颜色,字体和默认窗口大小。设置的格式是 emacs.keyword:value

下面是一个 ~/.Xresources 文件范例。
[注意]    注意

如果您的 ~/.Xresources 中包含其他设置,就将下列内容添加到文件结尾。

     
emacs.background: light gray
emacs.foreground: black
emacs.pointerColor: blue
emacs.cursorColor: blue
emacs.bitmapIcon: on
emacs.font: fixed
emacs.geometry: 90x25         

   

修改文件后,您必须执行命令

      xrdb -merge ~/.Xresources
   

并且重新运行 Emacs 以使改变生效

 » 相关连接:
用emacs进行16进制编辑 用emacs编辑HTML c/c++/php/java/python/html/xml模 ECB使用技巧
emacs日程管理日历 EMACS下的五笔字型输入法 常见问题 Emacs下FTP
emacs编辑命令速查 GNU/Linux实战手记之Emacs篇
[回复]
如果给出了正确的文档类型声明 (DTD) 文件,Emacs 可以对 DocBook XML 文件进行正确的语法高亮和缩进。这些特性将使您的 XML 文件易于阅读,帮助您发现错误。

要创建一个可加载的已解析的 DTD 文件:

  1.

      找到一组 DocBook 文件的主控文件。您可以通过头部是否包含 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN" 来找到它。最简单的办法,是运行命令 grep DocBook *.xml。找到主控文件后,在 Emacs 中打开它,命令是 emacs <parentfile>.xml (这里 <parentfile>.xml 是你找到的主控文件)。
  2.

      在下拉菜单中选择 DTD -> Parse DTD。
  3.

      当您看到屏幕下方的 Fontifying...done 信息时,解析就完成了。将已解析的 DTD 保存为文件,方法是在下拉菜单中选择 DTD -> Save Parsed DTD。
  4.

      按下 Enter 来保存为默认文件名,或者修改文件名,但应保留 .ced 扩展名。可以将它命名为 docbook.ced 这样很通用的名字,这样您在打开所有 DocBook 文件的时候都可以引用它。这个文件也可以复制到要加载的目录中。

[提示]    技巧

您也可以使用 Emacs 命令 Meta-x sgml-parse-prolog 来解析这个文件,然后用命令 Meta-x sgml-save-dtd 来保存已解析的 DTD 到 .ced 文件中。

 » 相关连接:
用emacs进行16进制编辑 用emacs编辑HTML c/c++/php/java/python/html/xml模 ECB使用技巧
emacs日程管理日历 EMACS下的五笔字型输入法 常见问题 Emacs下FTP
emacs编辑命令速查 GNU/Linux实战手记之Emacs篇
[回复]
现在您已保存了 DTD 设置,您可以加载这个 .ced 文件,看看 .sgml 文件语法高亮的效果。

要加载已解析的 DTD 文件:

  1.

      在 Emacs 中打开 XML 文件
  2.

      在下拉菜单中选择 DTD -> Load DTD 然后选择您在上一步保存的文件。例如,选择 docbook.ced。
  3.

      当您看到屏幕下方的 Fontifying...done 信息时,就加载完毕了。加载已解析的 DTD 可能需要很久。您可以在加载完毕前就开始编辑。

[提示]    技巧

您也可以使用 Emacs 命令 Meta-x sgml-load-dtd 来加载已翻译的 DTD。

 » 相关连接:
用emacs进行16进制编辑 用emacs编辑HTML c/c++/php/java/python/html/xml模 ECB使用技巧
emacs日程管理日历 EMACS下的五笔字型输入法 常见问题 Emacs下FTP
emacs编辑命令速查 GNU/Linux实战手记之Emacs篇
 » 本栏目最新帖:
 » 精华帖:

Powered by PHPWind v6.0 Code © 2003-08