我了解 GNU Info 是什么以及如何使用它,但它到底是什么为了?为什么它与手册页同时存在?为什么不编写详细的手册页而不是提供单独的实用程序?
答案1
GNU Info 旨在提供全面、超链接且可以输出为多种格式的文档。
手册页可用,并且它们非常擅长提供打印输出。然而,它们的设计使得每个手册页都包含相当小的内容集。手册页可能对单个 C 函数(例如 printf(3))进行讨论,或者描述 ls(1) 命令。
当你进入更大的系统时,这种情况就会崩溃。您将如何将 Emacs 文档放入手册页中?这个问题的一个例子是 Perl 手册页,它列出了 174 个单独的手册页,您可以阅读它来获取信息。您如何浏览它,或者进行搜索以找出 && 的含义?
作为对手册页的改进,Info 为我们提供了:
- 能够为大型系统提供单个文档,其中包含有关该系统的所有信息。 (相对于 174 个手册页)
- 能够对整个文档进行全文搜索(v. man -k 仅检查关键字)
- 指向相同或不同文档的不同部分的超链接(v.“另请参阅”部分,某些(但不是全部)手册页查看者将其制作成超链接)
- 文档的索引,可以浏览它,或者您可以点击“i”并输入一个术语,它会搜索索引并将您带到正确的位置(v.Nothing)
- 跨概念的线性文档浏览,如果您愿意,您可以通过鼠标或按键(v.Nothing)阅读上一节和下一节。
它还相关吗?如今,大多数人会说“此文档不属于联机帮助页”,并将其放入 PDF 或 HTML 中。事实上,一些操作系统上的帮助系统都是基于 HTML 的。然而,当 GNU Info 创建时(1986 年),HTML 还不存在。如今,texinfo 允许您创建 PDF、Info 或其他格式,因此您可以根据需要使用这些格式。
这就是 GNU Info 被发明的原因。
答案2
发明信息系统的原因是必要的,但我想“懒惰、傲慢和不耐烦”也是一个同样好的解释。
GNU 项目的目的是开发一个可自由修改和可自由分发的操作系统和工具。传统的 Unix man 系统基于贝尔实验室的 nroff/troff 文档格式化系统,该系统当时是商业(非自由)软件。最终,该系统被逆向工程,并创建了一个名为 groff 的免费替代品,但那是在 GNU 项目启动几年后。因此,在此之前使用 man 系统作为 GNU 文档需要实现 troff 替换,这是一项艰巨的任务。
同时,GNU Emacs 是 GNU 的第一个大型项目,它需要大量的文档。面对实现 GNU 系统的大量工作,Richard Stallman 寻找可以在他的系统中使用的现有软件。 TeX 已经存在并且具有强大的文档格式化功能。与 nroff/troff 不同,TeX 可以免费使用和重新分发。 Texinfo 是作为一个文档系统创建的,旨在利用 TeX 的强大功能来打印手册,并利用 GNU Emacs 的强大功能来处理和在线文档阅读。最初的 Texinfo 处理器和 Info 文档浏览器都是用 Lisp 编写的,并在 Emacs 中运行。几年后,独立的 Texinfo 实用程序问世。
答案3
作为维基百科页面说,TeXinfo 是由 Richard Stallman 设计作为 GNU 项目的官方文档。它是 TeX 之上的一组宏,专为编写软件手册而设计。我认为斯托曼认为手册页不足以完成这项任务。 Texinfo 相对于手册页有两个优点,一是它具有超链接,二是它在设计上易于转换为其他格式。
附录:虽然与问题并不严格相关,但请注意,手册页仍然被认为是免费类 Unix 系统上的标准文档系统,例如运行在 Linux 内核上的系统以及各种 BSD 风格的系统。例如,Debian 软件包模板鼓励为任何命令添加手册页,并且 lintian 检查手册页。 Texinfo 在 GNU 项目之外仍然没有得到广泛使用。
答案4
来自一个实际的看法,info
是最详细的的三个级别参考文档:
这三个级别通常会详细增加:
--help
作为常用命令选项 – 简短用法概括,man
– 经典手册页; A快速参考, 和info
– 更详细的 GNU 特定手册 –完整的官方文档。
如果info
页面不可用,则手册页通常包含完整的文档。
请注意,手册页可能包含与 GNU coreutils 的许多命令的输出完全相同的信息--help
– 例如,ls
.如果您比较ls --help
和man ls
,您可能会发现内容非常相似。
这官方的信息查看者info
在 ( )info
中。 emacs
M-x info
有第三方替代品,例如pinfo
对于终端或konqueror
GUI:
-
pinfo ls
-
konqueror info:ls