O que é o GNU Info para?

58

Eu entendo o que é o GNU Info e como usá-lo, mas o que é para ? Por que existe em paralelo às man pages? Por que não escrever man pages detalhadas em vez de fornecer um utilitário separado?

    
por johntait.org 29.05.2013 / 16:40

5 respostas

59

O GNU Info foi desenvolvido para oferecer uma documentação abrangente, com hiperlinks e possível saída para vários formatos.

As páginas do manual estavam disponíveis e eram ótimas para fornecer impressões. No entanto, eles foram projetados de forma que cada página do manual tivesse um conjunto razoavelmente pequeno de conteúdo. Uma página man pode ter a discussão em uma única função C, como printf (3), ou descreveria o comando ls (1).

Isso é interrompido quando você entra em sistemas maiores. Como você encaixaria a documentação do Emacs em man pages? Um exemplo do problema é a página man do Perl, que lista 174 man pages separadas que você pode ler para obter informações. Como você navega por isso ou faz uma pesquisa para descobrir o que & & significa?

Como uma melhoria em relação às páginas de manual, Info nos forneceu:

  1. A capacidade de ter um único documento para um sistema grande, que contém todas as informações sobre esse sistema. (contra 174 páginas man)
  2. Capacidade de realizar pesquisa de texto completo em todo o documento (v. man -k, que apenas verifica as palavras-chave)
  3. Hiperlinks para diferentes partes de documentos iguais ou diferentes (v. A seção Consulte também, que foi transformada em hiperlinks por alguns visualizadores de páginas de manual, mas não todos)
  4. Um índice para o documento, que pode ser navegado ou você pode clicar em "i" e digitar um termo e pesquisar o índice e levá-lo ao lugar certo (v. Nothing)
  5. Navegação linear de documentos entre conceitos, permitindo que você leia as seções anterior e seguinte, se desejar, por mouse ou pressionamento de tecla (v. Nothing).

Ainda é relevante? Hoje em dia a maioria das pessoas diria "Esta documentação não pertence a uma página man" e a colocaria em um PDF ou a colocaria em HTML. De fato, os sistemas de ajuda em vários sistemas operacionais são baseados em HTML. No entanto, quando o GNU Info foi criado (1986), o HTML ainda não existia. Hoje em dia, o texinfo permite criar PDF, Info ou outros formatos, para que você possa usar esses formatos, se quiser.

É por isso que o GNU Info foi inventado.

    
por 29.05.2013 / 22:53
39

A razão pela qual o sistema Info foi inventado é uma necessidade, mas eu acho que "preguiça, arrogância e impaciência" é uma explicação igualmente boa.

O objetivo do projeto GNU era desenvolver um sistema operacional e ferramentas livremente modificáveis e livremente distribuíveis. O sistema tradicional Unix man era baseado no sistema de formatação de documentos nroff / troff da Bell Labs, que era na época software comercial (não-livre). Eventualmente, esse sistema foi submetido a engenharia reversa e uma substituição gratuita chamada groff foi criada, mas isso foi vários anos após o início do projeto GNU. Portanto, usar o sistema man para a documentação do GNU antes disso exigiria a implementação de um substituto do troff, um grande empreendimento.

Entretanto, o GNU Emacs foi o primeiro grande projeto do GNU e exigiu extensa documentação. Diante de uma montanha de trabalho implementando o sistema GNU, Richard Stallman procurou por softwares existentes que ele pudesse usar em seu sistema. O TeX já existia e possuía recursos poderosos de formatação de documentos. Ao contrário do nroff / troff, o TeX estava livre para usar e redistribuir. O Texinfo foi criado como um sistema de documentação para alavancar o poder do TeX para manuais impressos e o GNU Emacs para processamento e leitura de documentação online. O processador original Texinfo e o navegador de documentos Info foram escritos em Lisp e executados dentro do Emacs. Os utilitários independentes da Texinfo vieram vários anos depois.

    
por 29.05.2013 / 18:21
19

Como a página da Wikipedia diz , o TeXinfo foi projetado como a documentação oficial do projeto GNU por Richard Stallman. É um conjunto de macros em cima do TeX e foi projetado para escrever manuais de software. Eu acho que Stallman considerou as páginas do homem inadequadas para a tarefa. Duas vantagens que o Texinfo tem sobre as páginas man é que ele é hyperlinkado e, segundo, que é, por design, fácil de converter em outros formatos.

ADENDO: Embora não seja estritamente relevante para a questão, note que as páginas man ainda são consideradas o sistema de documentação padrão em sistemas livres do tipo Unix como aqueles rodando sobre o kernel do Linux e também os vários tipos de BSD. Por exemplo, os modelos de pacotes Debian encorajam a adição de uma página man para quaisquer comandos, e também o lintian verifica uma página man. Texinfo ainda não é amplamente usado fora do projeto GNU.

    
por 29.05.2013 / 17:02
7

De uma visualização prática , info é o mais detalhado de três níveis de documentação de referência:

Os três níveis geralmente estão aumentando em detalhes:

--help como uma opção de comando comum - um resumo de uso curto ,% man - as páginas man clássicas, uma referência rápida e
> info - um manual mais detalhado, GNU-speciffic - a documentação oficial completa .

Se uma página info não estiver disponível, a página do manual geralmente contém a documentação completa.

Note que a página man contém exatamente as mesmas informações como --help output para muitos comandos do GNU coreutils - por exemplo ls ;

Compare ls --help e man ls para ver que a diferença é apenas na formatação.

O visualizador de informações padrão é info .
Existem mais alternativas confortáveis , como para o terminal pinfo , para a GUI konqueror :

pinfo ls

konqueror info:ls

    
por 29.07.2014 / 05:46
1

1 - tecnologia avançada, mas leve

As páginas do manual são simples.

info é uma árvore.

Ambos permanecem com base em texto , para que possam ser usados durante o desenvolvimento de sistemas de baixo nível (diferente de http, que requer uma GUI e um navegador completos para poder usá-lo).

Isso também é útil porque o linux pode rodar em muitas máquinas com poucos recursos, por exemplo, o material que roda no meu Arduino da Atmel é encontrado em info .

(Histórico: info é semelhante a gopher Se você se lembrar disso, era o que tínhamos antes de nos mudarmos para o GUI OS, e a rede mundial de computadores explodiu. Eu lembro que o gopher funcionou muito bem para encontrar informações, e foi rápido e simples. , totalmente baseado em texto e rápido.)

As páginas do manual não podem ter hiperlinks operáveis. (Isso não é possível nesta tecnologia).

info pode e tem muitos links operáveis de nó para nó, ou de nó para folha, facilitando muito a navegação rápida de manuais grandes.

2 - contém conteúdo não encontrado em man pages

Muitos pacotes padrão também possuem um pacote -doc . Geralmente, esse conteúdo é encontrado apenas dentro de info .

Esses pacotes de documentação adicionam folhetos dentro de informações, com seções e subseções. Em info lingo, eles são chamados de nodes e os nós podem conter outros nodes em uma estrutura de árvore.

Existem comandos para subir em volta da árvore, aqui estão alguns exemplos:

  • up uma seção, por exemplo da seção 2.1 para a seção 2
  • próxima seção (por exemplo, mover ao longo das dicas de ramificação de uma página para outra), por exemplo da Seção 2, para a Seção 2.1, e ( supondo que não haja Seção 2.2 ), para a Seção 3
  • right uma seção, por exemplo da Seção 2 diretamente para a Seção 3, ignorando a seção 2.1

Se você estiver lendo e rolar linha por linha, você visitará todas as seções de cada livreto.

Comandos importantes

l - voltar - minúscula 'L', como em l ast. É como o botão voltar no seu navegador da web. - Volte para o último nó visto nesta janela (inicialmente só temos uma janela). Uau, podemos dividir a janela do documento pela metade também!

d - meu pessoal - Vá para o nó principal ' d irectory'. - Este é o topo da árvore INFO. Contém links para as famílias:

t - minha família - Vá para o nó operacional t deste documento. - Geralmente o índice

u - meu pai - Vai u p um nível. por exemplo. vá da Seção 2.1 para a Seção 2.

n - meus irmãos - Vá para o nó ext n nesse nível. por exemplo. seção 2 - > secção 3 (não 2.1)

p - meus irmãos - Vá para o nó revigorante p nesse nível. por exemplo. seção 3 - > seção 2

] - meus filhos - Vá para o nó seguinte no documento, por exemplo seção 2 - > seção 2.1

[ - meus filhos - Vá para o nó anterior no documento, por exemplo secção 2.1 - > seção 2

Eu também não entendi porque gostaria de usar informações. Eu já havia me metido nisso e, a princípio, achei a velha escola. Mas porque eu precisava de mais algumas informações para um projeto autoconf , e foi sugerido para mim que é onde essa documentação estava, eu dei outra olhada recentemente.

A primeira coisa que tive que fazer foi descobrir como navegar melhor. Eu achei a ajuda dada por H quase inútil. Isso foi até que percebi que eu poderia rolar para baixo nesta ajuda, mas então havia muita confusão.

Então copiei essa ajuda e colei-a em um Gnote e comecei a tentar entender como info funcionava.

Como eu aprendi mais, reescrevi a ajuda deles para mim. Eu queria saber qual era a gama completa de comandos e como eles eram categorizados.

Percebi que muitas das teclas foram duplicadas, com 2 ou 3 formas de executar um determinado comando. Eu também notei que tudo isso se parecia muito com o emacs.

Aqui está minha folha de dicas dos comandos info :

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 -hwj)
        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 -hwj):

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


        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
    
por 30.11.2018 / 22:25