较新版本的 Emacs 或 XEmacs (可通过 Ports 安装) 包含了一个非常实用的包 PSGML (可以通过 editors/psgml)。 当打开一个扩展名为 .sgml 文件的时候就能自动载入此模式, 或手工输入 M-x sgml-mode, 这是一个处理 SGML 文件, 元素和属性的主编辑模式。
理解此模式所提供的一些命令能更容易的处理像使用手册这样的 SGML 文档。
运行 sgml-insert-element
。
你将会被提示在光标出插入元素的名称。 你可以使用 Tab
键补全元素名称。 仅会显示当前位置可用的元素。
元素的开始与结束标记会被插入。 如果还含有其他的元素也同样会被插入。
运行 sgml-change-element-name
。
把光标置于某个元素上并运行此命令。 你将被提示输入修改的新元素名称。
开始与结束标记都将被改成新的元素。
运行 sgml-tag-region
。 选择一部分文本
(将光标移到文本的开始, 按 C-space, 移动到文本的结束, 按 C-space) 然后运行此命令。 你将会被提示输入想要使用的元素名称。
这个元素将会被立即插入到所选区域的开头与结尾。
运行 sgml-untag-element
。
把光标移动到你想要删除的某个元素的开始或结束标记, 并运行此命令。
这个元素的开始与结尾标记将会被删除。
运行 sgml-fill-element
。 将递归填充 (即重新格式化)
当前元素的内容。 填充 将
明显影响内容的空白间隔, 比如 <programlisting> 元素,
所以请小心使用。
运行 sgml-edit-attributes
。
打开另一个包含有临近结束元素所有属性和值列表的缓冲区, 使用 Tab
查看不同的属性, C-k删除一个现有的值, 替换成新的值, C-c C-c 关闭这个缓冲区并返回主文档。
运行 sgml-validate
。 提示你保存当前的文档 (如需要的话)
并运行一个 SGML 验证程序。 验证程序的输出会被捕捉送如一个新的缓冲区,
你能一个个查看错误点, 然后修正标记的错误。
Runs sgml-insert-end-tag
. Inserts the end tag for the
current open element.
毫无疑问此编辑模式肯定还有其他实用的功能, 以上的这些是我最常用到的。
你可以把如下的片断加入到 .emacs 中为处理文档项目设置适当的间隔, 缩进和列宽。
(defun local-sgml-mode-hook (setq fill-column 70 indent-tabs-mode nil next-line-add-newlines nil standard-indent 4 sgml-indent-data t) (auto-fill-mode t) (setq sgml-catalog-files '("/usr/local/share/sgml/catalog"))) (add-hook 'psgml-mode-hook '(lambda () (local-psgml-mode-hook)))
本文档和其它文档可从这里下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读文档,如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.