CSDN博客

img hem

水木-Emacs 的 texinfo 模式(一)

发表于2001/6/11 19:21:00  1104人阅读

分类: linux

水木-Emacs 的 texinfo 模式(一)

null ana

返回〗〖转发〗

来自ana的主页 http://ana.163.net/ 
 
------------------------------------------- 
 
                使用 Texinfo 模式 
 
    你可以以任何你喜欢的编辑器来编辑 Texinfo 文件。Texinfo 文件和其他的 ASII 文件没有任何不同。然而,GNU Emacs 有一个特殊的Texinfo 模式,它提供了许多命令和工具来改进你的工作。 
 
    这一章描述了 Emacs 的 Texinfo 模式的特征,但并不介绍 Texinfo 的格式化语言。也许你需要返回到开始目录阅读 Texinfo 格式化语言的详细介绍。 
 
*目录: 
 
*Texinfo Mode Overview::        Texinfo 模式有那些有用特性。 
*Emacs Editing::                Texinfo 模式的编辑特征。 
*Inserting::                    怎样插入经常使用的 @ 命令。 
*Showing the Structure::        怎样显示文件结构。 
*Updating Nodes and Menus::     怎样建立和更新节点和目录。 
*Info Formatting::              怎样格式化 Info 文件。 
*Printing::                     怎样格式化文件的打印部分。 
*Texinfo Mode Summary::         简介所有的 Texinfo 模式命令。 
 
         第一节  Texinfo 模式概览 
 
    Texinfo 模式提供了许多有用的特性: 
 
    *插入经常使用的 @ 命令。 
 
    *自动建立 `@node' 行。 
 
    *显示 Texinfo 源文件的结构。 
 
    *自动建立或更新节点的 `Next', `Previous', `Up'的指向。 
 
    *自动建立或更新目录。 
 
    *自动的建立主要目录。 
 
    *为 Info 文档格式化部分或文件的整个部分。 
 
    *设置和打印文件的部分或整个部分。 
 
    也许最有用的两个特性是插入常用的 @ 命令和建立节点指向和目录。 
 
               常用的 GNU Emacs 编辑命令 
 
    在多数情况下,常用的编辑命令和文本模式下一样,Texinfo 模式仅仅是加入了一些新的命令和工具。主要的区别在于段落填充。在 Texinfo 模式下,段落分隔变量和符号表被重新定义,这样导致有一些行是孤立行。也就是说,`M-q'(`fill-paragrph')(段落填充--也就是段落重排)命令在重排段落的时候,不会把一个索引命令分隔到段落中的其他行去。 
     
    另外,Texinfo 模式设置变量 `page-delimiter' 值为
`texinfo-chapter-level-regexp'; 它缺省匹配关于章节等的等价的命令。通过这样设置,你可以从一个章节跳转到另一个章节通过使用命令 `C-x ]'(`forward-page')(向前一页)、`C-x ['(`backward-page')(向后一页)和`C-xp'(`narrow-to-page')(页间跳转)。 
  
    你可以给 Texinfo 随意起名,但是最好以以下几个后缀给文件命名:`.texinfo', `.texi', `.txi', `.tex'。尽管对于许多系统来说文件扩展名的长度有限制,我们仍然推荐使用长后缀。当你查看一个以 `.texinfo',`.texi',`.txi'为后缀的文件时,GNU Emacs 自动的进入 Texinfo 模式。当你查看的文件的第一行有文本 `-*-texinfo-*-' 时,Emacs 也会自动的转入Texinfo 模式。假如你在 Emacs 的其他模式中时,你可以用 `M-xtexinfo-mode' 进入 Texinfo 模式。 
 
    就象所有其他的 Emacs 特征,你可以自已定义 Texinfo 模式。它的定义非常容易改变,这儿所说的都是缺省值。 
 
                插入常用的命令 
 
    Texinfo 模式提供了许多命令来插入各种常用的 @ 命令。 
 
    用输入 `C-c' 两次再跟 @ 命令的第一个字母来插入命令。 
 
`C-c C-c c' 
`M-x texinfo-insert-@code' 
 
    插入 `@code{}' 并且把光标放在括号中间。 
 
`C-c C-c d' 
`M-x texinfo-insert-@dfn' 
 
     插入 `@dfn{}' 并且把光标放在括号中间。 
 
`C-c C-c e' 
`M-x texinfo-insert-@end' 
 
     插入 `@end' 并且试图插入正确的单词,就象 `example'或 `table'。(这条命令不能正确的处理嵌套列表,但是可以插入适当的单词) 
 
`C-c C-c i' 
`M-x texinfo-insert-@item' 
 
     插入 `@item' 并且把光标放在下一行的开始。 
 
`C-c C-c k' 
`M-x texinfo-insert-@kbd' 
 
     插入 `@kbd{}' 并把光标放在括号中间。 
 
`C-c C-c n' 
`M-x texinfo-insert-@node' 
 
     插入 `@node' 和一个注解行,后面列出 `Next', `Previous', `Up' 节点, 
把光标放在 `@node' 后面。 
 
`C-c C-c o' 
`M-x texinfo-insert-@noindent' 
 
     插入 `@noindent' 并且把光标放在下一行的开始。 
 
`C-c C-c s' 
`M-x texinfo-insert-@samp' 
 
     插入 `@samp{}' 并把光标放在括号中间。 
 
`C-c C-c t' 
`M-x texinfo-insert-@table' 
 
     插入 `@table' 后面跟一个空格,光标放在空格后面。 
 
`C-c C-c v' 
`M-x texinfo-insert-@var' 
 
     插入 `@var{}' 并把光标放在括号中间。 
 
`C-c C-c x' 
`M-x texinfo-insert-@example' 
 
     插入 `@example' 并把光标放到下一行的开始。 
 
`C-c C-c {' 
`M-x texinfo-insert-braces' 
 
     插入 `{}' 并把光标放在括号中间。 
 
`C-c C-c }' 
`C-c C-c ]' 
`M-x up-list' 
 
     从一括号对中向前移出到结束的括号后,因为输入 `C-c C-c ]' 比输入`C-c C-c }' 要容易,所以把这两个快捷键设置为同一功能。( 当然,你也可以用 `C-f' 向前移出 ),要将一个单词放入命令如 `@code{...}' 中时,把光标放在这个单词的前面,然后输入 `C-u 1 C-c C-c c'。前置参数的值告诉 Emacs 把多少个单词放入括号中间。 `1' 放入一个单词,`2' 放入二个单词,依次类推。使用负数做参数将嵌套上一个词组。假如你没有带数字参数,Emacs 插入命令字符串并把光标放在括号中间。这个特性只适用于那些在一行中对单词或词组进行操作的命令。如  
 
`@kbd' 与 `@var'。 
 
    这些命令是在分析了 `GNU Emacs Manual' 和 `GDB Manual' 手册里常用的 @ 命令的不同来建立的。如果你想定义自已的插入命令,你可以给一个键绑定 一个快捷键,使用缩写,或者在 `texinfo.el' 加入代码。 
 
    `C-c C-c C-d' (`texinfo-start-menu-description') 插入命令与其他的插入命令工作方式不同。它在一个目录条的空白处插入节点部分或插入章节标题。 
 
( 一个目录条有三部分,条目名,节点名,描述。只有节点名是必须的,但是描述可以帮助解释节点。) 
     
    使用时,把光标移动到目录条所在行键入 `C-c C-c d'。这个命令以节点名字来查找节点所在章节的标题,然后把标题做为描述插入条目中。光标放在所插入的文本的开始以便于编辑。假如当前目录条目已经有了描述,它不会把标题插入。 
 
    这个命令仅仅是写描述的一个辅助。它不能代替全部的工作。一个有用的描述并不是和节点名字完全一样的。 
 
                显示文件结构 
 
    你可以用 `C-c C-s' (`texinfo-show-structure') 命令显示 Texinfo 文件章节节构。它列出了以 `@chapter', `@section' 开头的 @ 命令所在行,以及相应的统计数字。这些行显示在另一个名叫做 `*Occur*' 的编辑窗口中。在这个窗口中,你可移动光标到其中的某一行上使用 `C-c C-c' 
(`occur-mode-goto- occurrence') 跳转到 Texinfo 文件中对应位置去。 
 
`C-c C-s' 
`M-x texinfo-show-structure' 
 
    显示 `@chapter', `@section' 对应行。 
 
`C-c C-c' 
`M-x occur-mode-goto-occurrence' 
 
    对应于在 `*Occur*' 窗口中光标所在行,跳转到 Texinfo 文件中相应位置。 
 
 
    在使用 `texinfo-show-structure' 时,如果通过 `C-c C-c C-s'使用了前置参数,那么它不仅仅列出以 `@chapter', `section' 等 @ 命令所在行,而且将列出 `@node' 所在行。( 这是第一版 Texinfo 不带参数时的工作状态,因为`@node' 行弄乱了 `*Occur*' 窗口的显示而且不常用,所以在以后的版本改变了它的工作形式 ) 你可以通过用前置参数来检查 `@node' 所在行的 `Next',`Previous', `Up' 的指向是否正确。 
 
    当你在一个手册上工作时,也许只感兴趣于当前章节的结构。在这种情况下,你可以用命令 `C-x n n' 设置你感兴趣的部分,`texinfo-show-structure' 将只在这部分工作。想要恢复查看整个的文档,使用命令 `C-x n w '( `widen')。 
 
 
    对于 `texinfo-show-structure' 命令,Texinfo 模式重新设置了分页变量的值来适应章节的 @ 命令。这使得你可以使用 `C-x ]'(`forward-page')和`C-x ['(`backward-page') 命令在章节中向前或向后移动。使用 `C-x p '命令 
(`narrow-to-page')限定章节。 
 
                更新节点和目录 
 
    Texinfo 模式提供了自动建立和更新目录及节点指向的命令。这些命令都归纳为 "update" 命令因为它们最常用在更新 Texinfo 文件。但是你也可以用它们在`@node'行插入 `Next', `Previous', `Up' 以及建立一个目录。 
 
    假如你没有用过这些命令,那么你必须手工输入目录和节点指向,这是一项沉闷的工作。 
 
*Menu: 
 
*Updating Commands::            五个主要的更新命令。 
*Updating Requirements::        怎样组织 Texinfo 的文件结构以便于使用 
                                更新命令。 
*Other Updating Commands::      怎样缩进描述,插入丢失的结点行,以及插 
                                入结点。 
 
------------------------------------------- 
 
iamafan@linuxaid.com.cn

责任编辑:知识库管理员(2001-01-03 16:27)
0 0

相关博文

我的热门文章

img
取 消
img