web-dev-qa-db-ja.com

GNU情報は何ですか?

GNU情報とその使用方法は理解していますが、それは何ですかfor?マニュアルページと並行して存在するのはなぜですか?詳細なmanを記述しないのはなぜですか?別のユーティリティを提供するのではなく、ページ?

64
johntait.org

GNU Infoは、包括的でハイパーリンクされたドキュメントを提供し、複数の形式に出力できるように設計されています。

Manページが利用可能で、印刷出力を提供するのに優れていました。ただし、各manページのコンテンツのセットがかなり少ないように設計されています。マニュアルページには、printf(3)などの単一のC関数に関する説明がある場合と、ls(1)コマンドについて説明している場合があります。

より大きなシステムに入ると、それは壊れます。 Emacsのドキュメントをmanページにどのように収めますか?問題の例はPerlのmanページで、情報を取得するために読むことができる174の個別のmanページがリストされています。それをどのように参照するか、または&&の意味を見つけるために検索を行いますか?

マニュアルページの改善点として、Infoは次のことを提供しました。

  1. そのシステムに関するすべての情報が含まれている、大規模なシステム用に単一のドキュメントを作成する機能。 (174のマニュアルページに対して)
  2. ドキュメント全体で全文検索を実行する機能(v。man -kはキーワードのみをチェックします)
  3. 同じまたは異なるドキュメントのさまざまな部分へのハイパーリンク(v。参照ページのセクション。すべてではないが一部のmanページビューアによってハイパーリンクにされた)
  4. 参照できる、または「i」を押して用語を入力できるドキュメントのインデックス。インデックスを検索して適切な場所に移動します(v。なし)。
  5. 概念全体にわたる線形ドキュメントブラウジング。必要に応じて、前のセクションと次のセクションを、マウスまたはキーストローク(v。なし)で読むことができます。

それはまだ関連していますか?今日、ほとんどの人は「このドキュメントはマンページに属していません」と言い、PDFまたはHTMLで記述します。実際、いくつかのOSのヘルプシステムはHTMLに基づいています。ただし、GNU情報が作成されたとき(1986))、HTMLはまだ存在していませんでした。現在、texinfoでは、PDF、情報、またはその他の形式を作成できるため、これらを使用できます。必要に応じてフォーマットします。

GNU情報が発明されたのはそのためです。

66
Alan Shutko

Infoシステムが発明された理由は必要ですが、「怠惰、傲慢、焦り」も同様に良い説明だと思います。

GNU=プロジェクトの目的は、自由に変更および自由に配布できるオペレーティングシステムとツールを開発することでした。従来のUnix manシステムは、Bell Labsのnroff/troffドキュメントフォーマットシステムに基づいていました。当時は商用(非フリー)ソフトウェアでした。最終的にそのシステムはリバースエンジニアリングされ、groffと呼ばれる無料の代替が作成されましたが、GNUプロジェクトが開始してから数年後です。 GNU以前のドキュメンテーションのためのシステムは、troffの交換を実装する必要があり、それは大きな仕事でした。

一方、GNU EmacsはGNUの最初の大きなプロジェクトであり、詳細なドキュメントが必要でした。GNU =システム、Richard Stallmanは、自分のシステムで使用できる既存のソフトウェアを探し求めました。TeXはすでに存在し、強力なドキュメントフォーマット機能を備えていました。nroff/ troffとは異なり、TeXは自由に使用および再配布できます。Texinfoは、活用するためのドキュメントシステムとして作成されました印刷されたマニュアルとGNU Emacsの処理とオンラインドキュメントの読み取りのためのTeXの力。元のTexinfoプロセッサとInfoドキュメントブラウザは両方ともLISPで作成され、Emacs内で実行されました。スタンドアロンのTexinfoユーティリティはいくつかありました年後。

42
Kyle Jones

ウィキペディアのページにあるように であるように、TeXinfoはGNUプロジェクトのリチャードストールマンによる公式ドキュメントとして設計されました。これはTeXの上にあるマクロのセットであり、ソフトウェアマニュアルを書くために設計されています。ストールマンは、manページがタスクには不十分だと考えていました。Texinfoのmanページに対する2つの利点は、ハイパーリンクされていることと、設計上、他の形式に簡単に変換できることです。

補遺:質問に厳密に関連しているわけではありませんが、manページはLinuxカーネル上で実行されているようなフリーのUnixライクなシステムやさまざまなBSDフレーバーの標準的なドキュメントシステムと見なされていることに注意してください。たとえば、Debianパッケージテンプレートは、コマンドのmanページの追加を推奨し、lintianはmanページのチェックも行います。 TexinfoはまだGNUプロジェクト以外では広く使用されていません。

21
Faheem Mitha

(以下のコマンドのチートシートを参照)

1-高度で軽量なテクノロジー

manページはフラットです。

infoはツリーです。

どちらもテキストベースのままなので、低レベルのシステム開発中に使用できます(httpとは異なり、使用する前に本格的なGUIとブラウザが必要です)。

Linuxは多くの低リソースマシンで実行できるため、これも役立ちます。たとえば、AtmelのArduinoで実行されるものはinfoにあります。


manページに操作可能なハイパーリンクを含めることはできません。(このテクノロジーでは不可能です。)

infoには、操作可能なリンクが多数ありますノードからノードへ、またはノードからリーフへのリンクがあり、大きなマニュアルをすばやくナビゲートすることが非常に簡単になります。


(履歴:infoGopher に似ています。覚えておくと、移動する直前の状態でした。 GUI OSに、そしてワールドワイドウェブは爆発しました。Gopherは情報を見つけるのに非常にうまく機能し、高速でシンプルでした。それは簡単に拡張でき、完全にテキストベースで、高速でした。)


2-manページにないコンテンツが含まれています

多くの標準パッケージには、姉妹-docパッケージもあります。多くの場合、このコンテンツはinfo内でのみ見つかります。

これらのドキュメントパッケージは、セクションとサブセクションを含む情報内に小冊子を追加します。 infolingoでは、これらはnodesと呼ばれ、ノードは他のnodesを含むことができます- ツリー内構造。


最初の目標はナビゲートすることです。

しかし[〜#〜] h [〜#〜]によって提供されるヘルプは役に立ちません。 一部のロボットの出力に似ています。

私は彼らの助けをGnoteにコピーし、手で再編成しました(以下)。また、キーストロークの多くが重複しており、特定のコマンドを実行する方法が2つまたは3つあることに気付きました。 それはemacsに非常によく似ています。


木を登るコマンドがあります。ここにいくつかの例があります:

  • pセクション。セクション2.1からセクション2へ
  • rightセクション。セクション2.1からセクション2.2に直接、セクション2.1.1をスキップ
  • 次へセクション(ページからページへの分岐のヒントに沿って移動)、たとえばセクション2.1からセクション2.1.1に、そして(セクション2.1.2がないと仮定して)、セクション2.2に

読んでいるときに1行ずつ下にスクロールすると、各ブックレットのすべてのセクションにアクセスできます。


重要なナビゲーションコマンド-移動

最後
* l-lastつまり、戻ります。 Webブラウザーの戻るボタンに似ています。 -このウィンドウに表示されている最後のノードに戻ります(最初は1つのウィンドウしかありません)。 うわー、ドキュメントウィンドウも半分に分割できます!


* - p 1レベル。例えばセクション2.1からセクション2に進みます。

兄弟
* n-nこのレベルの次のノード。例えばセクション2->セクション3(2.1以外)
* p-pこのレベルの前のノード。例えばセクション3->セクション2

子供
* ]-nextドキュメント内のノード。セクション2->セクション2.1
* [-前へドキュメント内のノード。セクション2.1->セクション2


* d-d irectory(メイン)ノード。 -これはINFOツリーの最上位です。家族へのリンクが含まれています:

家族
* t-tこのドキュメントのopノード。 -一般的に目次

これは私の情報コマンドのチートシートです:

HELP - info - commands

#####################################################################################################################################################
Short list - 'basic' Info command keys (see below for full list)

        C-g         Cancel the current operation.
        H           Close this help window. (toggle help window)
        q           Quit Info altogether.

        h           Invoke the Info tutorial.


        Move in this node
                Up          Move up one line.
                Down        Move down one line.


                PgUp        Scroll backward one screenful.      - also backspace
                PgDn        Scroll forward  one screenful.      - also     space

                Home        Go to the beginning of this node.
                End         Go to the end       of this node.

                TAB         Skip to the next    hypertext link.

                /           Search forward for a specified string.
                }           Search for next     occurrence.
                {           Search for previous occurrence.

        Move to other nodes
                RET         Follow the          hypertext link under the cursor.

                1...9       Pick the first...ninth item in this node's menu.
                0           Pick the last item in this node's menu.

                l           Last in history.  Go back to the last node seen in this window (initially we only have one window). (?? history)


                d           Go to the main 'directory' node.                    my people
        the Info main menu - "This is the top of the INFO tree."

                t           Go to the top node of this document.                my family       Generally the table of contents

                u           Go up one level.                                    my parent       e.g. go from Section 2.1, to Section 2.

                n           Go to the next     node on this level.              my siblings     e.g. section 2 -> section 3  (not 2.1)
                p           Go to the previous node on this level.

                ]           Go to the next     node in the document.            my children     e.g. section 2 -> section 2.1
                [           Go to the previous node in the document.  (?siblings)


                m <name>    Pick a menu item specified by name.
                f           Follow a cross reference specified by name.
                g           Go to a node specified by name.

                i           Search for a specified string in the index (if there is an index), and select the node referenced by the first entry found.

                I           Synthesize menu of matching index entries. ???




#####################################################################################################################################################
Full list - of commands available in Info windows:

Notes: 
        M-              (meta) is Alt;  (also you can use an Esc prefix instead of meta)
        M-C-            means hold both Ctrl and Alt down at same time
        *               Basic commands (listed above)



     HELP
*               H                                       (get-help-window)               Toggle display of help message
*               h                                       (get-info-help-node)            Visit Info node '(info)Help' (this gets:  man info )


     CANCEL
*                       C-g     C-x C-g M-C-g           (abort-key)                     Cancel current operation  (?? esc)

*               q       C-c                             (quit)                          Quit using Info
                        C-x C-c                         (quit)                          Quit using Info


     WINDOWS
                        C-l                             (redraw-display)                Redraw the display

                x       C-x 0                           (delete-window)                 Delete the current window
                        C-x 1                           (keep-one-window)               Delete all other   windows (leaving 1)

                        C-x 2                           (split-window)                  Split the current  window  (into 2)
                        C-x t                           (tile-windows)                  Divide the available screen space among the visible windows

                        C-x ^                           (grow-window)                   Grow (or shrink) this window

                        C-x o                           (next-window)                   Select the next window (other)

                        C-x C-b                         (list-visited-nodes)            Make a window containing a menu of all of the currently visited nodes

                        C-x w                           (toggle-wrap)                   Toggle the state of line wrapping in the current window

     VIEW OTHER FILE
                        C-x C-f                         (view-file)                     Read the name of a file and select it
                        C-x C-v                         (view-file)                     Read the name of a file and select it


     SCROLL
                        C-v                             (scroll-forward-page-only)      Scroll forward  in this window staying within node      ('v' looks like a down arrow)
                                M-v                     (scroll-backward-page-only)     Scroll backward in this window staying within node      (meta-v is the reverse, or up arrow)

*       PgDn    SPC                                     (scroll-forward)                Scroll forward  in this window (at end moving to next node??)
*       PgUp    DEL     C-h                             (scroll-backward)               Scroll backward in this window (at end moving to next node??)  (DEL = Backspace or Del)

                                M-C-v   ESC PgDn        (scroll-other-window)           Scroll the other window
                                        ESC PgUp        (scroll-other-window-backward)  Scroll the other window backward


     CURSOR MOVEMENT (within a 'node' / page)
        Right           C-f                             ( forward-char)                 Move forward  a character
        Left            C-b                             (backward-char)                 Move backward a character

                                M-b                     (backward-Word)                 Move backward a Word
                                M-f                     ( forward-Word)                 Move forward  a Word

                        C-a                             (beginning-of-line)             Move to the start of the line
                        C-e                             (end-of-line)                   Move to the end   of the line


*       Up              C-p                             (prev-line)                     Move up   to the previous line
*       Down            C-n                             (next-line)                     Move down to the next     line

                                M-r                     (move-to-window-line)           Move the cursor to a specific line of the window

*       Home    b               ESC <                   (beginning-of-node)             Move to the start of this node
*       End     e               ESC >                   (end-of-node)                   Move to the end   of this node


     SEARCHING
                /                                       (search)                        Read a string and search          for it
                s                                       (search)                        Read a string and search          for it
                ?                                       (search-backward)               Read a string and search backward for it

                R                                       (toggle-regexp)                 Toggle the usage of regular expressions in searches

                S                                       (search-case-sensitively)       Read a string and search for it case-sensitively

*               }       C-x n                           (search-next)                   Repeat last search in the same    direction
*               {       C-x N                           (search-previous)               Repeat last search in the reverse direction


                        C-s                             (isearch-forward)               Search interactively for a string as you type it
                        C-r                             (isearch-backward)              Search interactively for a string as you type it


                                M-/                     (tree-search)                   Search this node and subnodes for a string.

                                M-}                     (tree-search-next)              Go to next     match in Info sub-tree
                                M-{                     (tree-search-previous)          Go to previous match in Info sub-tree


     JUMP TO NODE CROSS REFERENCES (underlined links to nodes)
*               TAB                                     (move-to-next-xref)             Move to the next     cross reference
                BackTab         M-TAB                   (move-to-prev-xref)             Move to the previous cross reference  (Shift-tab)


     SELECT A NODE (hyperlink)
*               RET                                     (select-reference-this-line)    Select reference or menu item appearing on this line

*               1 .. 9                                  (menu-digit)                    Select this     menu item (link) # in this node's menu (this page's menu)
*               0                                       (last-menu-item)                Select the last menu item (link)   in this node's menu (this page's menu)

                <                                       (first-node)                    Select the first node in this file
                >                                       (last-node)                     Select the last  node in this file


*               d                                       (dir-node)                      Select the 'dir' node (in all files?)   the Info main menu - "This is the top of the INFO tree."

*               t                                       (top-node)                      Select the 'Top' node in this file      Generally the table of contents
*               u                                       ( up-node)                      Select the 'Up'  node in this file      i.e. go from Section 2.1, to Section 2.


*               n                                       (next-node)                     Select the Next node                    i.e. section 2.1 -> section 2.2
*               p                                       (prev-node)                     Select the Prev node


*               g <name>                                (goto-node)                     Read a node name and select it
*               m <item>                                (menu-item)                     Read a menu item and select its node    ???


                        C-x b                           (select-visited-node)           Select a node which has been previously visited in a visible window (c-x=Window, back)



     MOVE TO ANOTHER NODE (in the tree)
*               [                                       (global-prev-node)              Move backwards or up   through node structure (tree within this file)
*               ]                                       (global-next-node)              Move forwards  or down through node structure (tree within this file)

*               l                                       (history-node)                  last - Select the most recently selected node

     GET NODE INFORMATION
                =                                       (display-file-info)             Show full file name of node being displayed
                O                                       (goto-invocation-node)          Find the node describing program invocation


     READ IN NEW MENUS
                G <menus>                               (menu-sequence)                 Read a list of menus starting from dir and follow them  ???


     INDEX
*               i                                       (index-search)                  Look up a string in the index for this file (Search for a specified string in the index 
                                                                                                (if there is an index), and select the node referenced by the first entry found.

                ,                                       (next-index-match)              Go to the next matching index item from the last 'i' command

*               I                                       (virtual-index)                 List all matches of a string in the index

                        C-x f                           (all-files)                     Show all matching files


     FOOTNOTES
*               f                                       (xref-item)                     Read a footnote or cross reference and select its node
                r                                       (xref-item)                     Read a footnote or cross reference and select its node

                                M-C-f                   (show-footnotes)                Show the footnotes associated with this node in another window

     NUMERIC 
                        C-u                             (universal-argument)            Start (or multiply by 4) the current numeric argument
                                M--                     (add-digit-to-numeric-arg)      Add this digit to the current numeric argument
                                M-0 .. M-9              (add-digit-to-numeric-arg)      Add this digit to the current numeric argument


     MISC
                                M-x                     (execute-command)               Read a command name in the echo area and execute it     ?? pwd and ls don't work


#####################################################################################################################################################
The following text commands can only be invoked via M-x (Alt-x):

        This is a list of longer commands that can be typed, all prefixed with Alt-x:


        M-x scroll-forward-set-window                   Scroll forward  in this window                          and set default window size
        M-x scroll-backward-set-window                  Scroll backward in this window                          and set default window size

        M-x scroll-forward-page-only-set-window         Scroll forward  in this window  staying within node     and set default window size
        M-x scroll-backward-page-only-set-window        Scroll backward in this window  staying within node     and set default window size

        M-x down-line                                   Scroll down by lines
        M-x   up-line                                   Scroll up   by lines

        M-x scroll-half-screen-down                     Scroll down by half screen size
        M-x scroll-half-screen-up                       Scroll up   by half screen size


        M-x prev-window                                 Select the previous             xwindow

        M-x set-screen-height <number>                  Set the height of the displayed window

        M-x  find-menu                                  Move to the start of this node's menu

        M-x visit-menu                                  Visit as many menu items at once as possible

        M-x man <name of man page>                      Read a manpage reference and select it


        M-x print-node                                  Pipe the contents of this node through INFO_PRINT_COMMAND


        M-x clear-search                                Clear displayed search matches


        M-x describe-key <key combo>                    Print documentation for KEY  (one line of documentation)
        M-x where-is                                    Show what to type to execute a given command
        M-x describe-command                            Read the name of an Info command and describe it


        M-x index-apropos                               Grovel all known info file's indices for a string and build a menu (grep widely, and make a menu of what is found)


        M-x describe-variable                           Explain the use of a     variable
        M-x      set-variable                           Set the value of an Info variable


        M-x info-version                                Display version of Info being run




#####################################################################################################################################################
Commands available in the 'echo' area (i.e. at bottom of screen):

        (M- (meta) = Fn  (not alt))


        C-l             (redraw-display)                        Redraw the display

        C-g     Esc     (echo-area-abort)                       Cancel or quit operation
        M-C-g           (echo-area-abort)                       Cancel or quit operation


     MOVE
        C-a     Home    (echo-area-beg-of-line)                 Move to the start of this line
        C-e     End     (echo-area-end-of-line)                 Move to the end   of this line

        C-b     Left    (echo-area-backward)                    Move backward a character
        C-f     Right   (echo-area-forward)                     Move forward  a character

        M-b             (echo-area-backward-Word)               Move backward a Word
        M-f             (echo-area-forward-Word)                Move forward  a Word

     COMMAND LINE COMPLETIONS
        M-?     ?       (echo-area-possible-completions)        List possible completions
        M-C-v           (echo-area-scroll-completions-window)   Scroll the completions window
        TAB     SPC     (echo-area-complete)                    Insert completion 
        RET     LFD     (echo-area-newline)                     Accept (or force completion of) this line


     DELETE/YANK
        C-d             (echo-area-delete)                      Delete the character under  the cursor
        C-h     DEL     (echo-area-rubout)                      Delete the character behind the cursor

        M-d             (echo-area-kill-Word)                   Kill the Word following the cursor
        M-DEL           (echo-area-backward-kill-Word)          Kill the Word preceding the cursor

        C-k             (echo-area-kill-line)                   Kill to the end       of the line
        C-x DEL         (echo-area-backward-kill-line)          Kill to the beginning of the line

        C-y             (echo-area-yank)                        Yank back the contents of the last kill
        M-y             (echo-area-yank-pop)                    Yank back a previous kill


     INSERT
        C-q             (echo-area-quoted-insert)               Insert next  character verbatim
        M-TAB           (echo-area-tab-insert)                  Insert a TAB character


     TRANSPOSE
        C-t             (echo-area-transpose-chars)             Transpose characters at point (and move ahead by one)

     NUMERIC ARGUMENTS ???
        C-u             (universal-argument)                    Start (or multiply by 4) the current numeric argument
        M--             (add-digit-to-numeric-arg)              Add this digit to the current numeric argument
        M-0 .. M-9      (add-digit-to-numeric-arg)              Add this digit to the current numeric argument

        C-x o           (next-window)                           Select the next window
4
Elliptical view