Para que serve o GNU Info?

62

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

johntait.org
fonte
3
O arquivo texinfo pode fazer muito mais das macros groff.
Jordanm
15
Ele tem uma vantagem sobre as páginas de manual: "hiperlinks". O resto são desonestos, começando com a Not Notented Here Syndrom, combinações de teclas engraçadas, problemas de manutenção de diretórios e muito mais.
Jens
4
Use info --vi-keyspara tornar as combinações de teclas das informações mais familiares. Você também pode usar lesscom informações para torná-lo sentir-se como man: info --subnodes -o - $1 | less. Você perde algum formato de texto dessa maneira.
1
Como alternativa, aponte seu navegador para gnu.org/manual . (Usando Vimperator / Vrome é opcional.)
nwk

Respostas:

63

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

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

Isso ocorre quando você entra em sistemas maiores. Como você ajustaria a documentação do Emacs nas páginas de manual? Um exemplo do problema é a página de manual do Perl, que lista 174 páginas de manual 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 nas páginas de manual, a Info nos deu:

  1. A capacidade de ter um único documento para um sistema grande, que contém todas as informações sobre esse sistema. (versus 174 páginas de manual)
  2. Capacidade de fazer pesquisa de texto completo em todo o documento (v. Man -k, que verifica apenas palavras-chave)
  3. Hiperlinks para diferentes partes do mesmo documento ou de documentos diferentes (v. A seção Consulte também, que foi transformada em hiperlinks por alguns, mas não todos, visualizadores de páginas de manual)
  4. Um índice para o documento, que pode ser procurado ou você pode pressionar "i" e digitar um termo, que pesquisaria o índice e o levaria ao lugar certo (v. Nada)
  5. Navegação linear de documentos entre conceitos, permitindo que você leia as seções anteriores e seguintes, se desejar, por meio de mouse ou pressionamento de tecla (v. Nada).

Ainda é relevante? Atualmente, a maioria das pessoas diria "Esta documentação não pertence a uma página de manual" e a colocaria em PDF ou 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. Atualmente, o texinfo permite criar PDF, Informações ou outros formatos, para que você possa usá-los, se desejar.

É por isso que o GNU Info foi inventado.

Alan Shutko
fonte
6
man -K foo, com opção maiúscula, faz uma pesquisa global de texto completo. Experimente man -K global-apropos- encontra as páginas por mansi só, em inglês e no idioma local.
Volker Siegel
1
Como você descobre o que '&&' significa? ... você olha no índice: "man perl", a partir daí você vê Visão geral, Tutoriais, Manual de referência, Internos, Diversos (livros, fontes da comunidade, licença, registros de alterações (~ 40), documentos específicos de idioma + plataforma. Desses, para '&&', procuro a Seção de referência e vejo a sintaxe, os dados e os operadores como as 3 primeiras seções, como a maioria dos manuais de referência de idiomas. assim que eu olhar na manpage perlop, e 2º tela para baixo lista todos os operadores Compare isso a descobrir as chaves para --vi-mode arg para 'info' ... boa sorte..
Astara
41

A razão pela qual o sistema Info foi inventado é a necessidade, mas 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 do Unix man era baseado no sistema de formatação de documentos nroff / troff da Bell Labs, que na época era um software comercial (não gratuito). Eventualmente, esse sistema teve 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, o uso do sistema man para documentação do GNU antes disso exigiria a implementação de uma substituição de troff, uma tarefa enorme.

Enquanto isso, o GNU Emacs foi o primeiro grande projeto do GNU e exigiu extensa documentação. Diante de uma montanha de trabalhos implementando o sistema GNU, Richard Stallman buscou o software existente que ele poderia usar em seu sistema. O TeX já existia e tinha poderosos recursos de formatação de documentos. Ao contrário do nroff / troff, o TeX era 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 do GNU Emacs para processamento e leitura de documentação on-line. O processador Texinfo original e o navegador de documentos Info foram escritos em Lisp e executados no Emacs. Os utilitários independentes da Texinfo vieram vários anos depois.

Kyle Jones
fonte
20

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

ADENDO: Embora não seja estritamente relevante para a questão, observe que as páginas de manual ainda são consideradas o sistema de documentação padrão em sistemas livres do tipo Unix, como aqueles executados no topo do kernel Linux e também os vários tipos de BSD. Por exemplo, os modelos de pacotes Debian incentivam a adição de uma página de manual para qualquer comando, e também o lintian verifica uma página de manual. O Texinfo ainda não é amplamente utilizado fora do projeto GNU.

Faheem Mitha
fonte
2
+1 especialmente para a observação sobre hipertexto, que eu acho que foi um dos principais motivos para querer me afastar do (na época mais do que agora) manformato orientado por cópia impressa .
Tripleee
@ChristopherSchultz editado
Faheem Mitha
Estou acostumado a livros para materiais de referência. Eu posso lê-los de capa a capa. Se manuais e livros são inadequados para escrever documentação, computadores e idiomas nunca teriam sido ensinados ou aprendidos. Na aprendizagem, a maioria segue uma progressão do conhecimento de baixo a alto, com tópicos mais complexos baseados em tópicos mais simples. Os livros são quase o que toda criança aprende - informações apresentadas seqüencialmente. Os links H destinam-se a tópicos aleatórios de interesse: se especialista e mestre do tópico - você sabe o que deseja e os links podem levá-lo até lá rapidamente. Para referência e aprendizado, os links não são adequados.
Astara 12/06
7

Do ponto de vista prático , infoé o mais detalhado dos três níveis de documentação de referência:

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

--helpcomo uma opção de comando comum - um breve resumo de uso ,
man- as páginas de manual clássicas, uma referência rápida e
info- um manual mais detalhado e específico do GNU - a documentação oficial completa .

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

Observe que a página de manual contém exatamente as mesmas informações, como a --helpsaída de muitos comandos do GNU coreutils - por exemplo ls;

Compare ls --helpe man lsveja que a diferença está apenas na formatação.


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

pinfo ls

konqueror info:ls

Volker Siegel
fonte
Bem, você é econômico, eu lhe darei isso.
Mikeerv
@mikeserv Não encontrei o recurso de inclusão de sub-resposta. ;)
Volker Siegel
hmmm ... muito interessante, exceto pelo fato de você esquecer de mencionar helpcomo um comando para os comandos bash integrados apropose whatiscomo o homem com opções para uso prático.
Uma referência hiperligada não é um manual ou livro. Um wiki? talvez, mas os manuais nunca vêm com hiperlinks no mundo off-line. Eles vêm com referências (consulte o capítulo 38), mas não são bons para aprender. Tendo lido recentemente o livro C ++ mais recente, posso concordar que ele usa referências para a frente e para trás, se você quiser obter mais informações sobre um tópico que será abordado posteriormente. Depois de ler o livro, essas referências podem ser uma grande ajuda para encontrar as coisas. Mas para alguém novo em um programa complexo? Prefiro sempre um livro a um HTML vinculado ou a uma página de informações.
Astara
Eu amo páginas de informação. Eles são muito mais parecidos com tutoriais do que páginas de manual e, portanto, muito mais fáceis para iniciantes. Experimente info sede info grepcompare com man sede man grep. As páginas de manual são muito mais técnicas e carecem de exemplos na maioria das vezes. Há exceções ao que acabei de descrever, mas isso vale para a maioria dos comandos, eu diria.
Fernando Basso
3

1 - tecnologia avançada, mas leve

As páginas de manual são planas.

info é uma árvore

Ambos permanecem baseados em texto , para que possam ser usados ​​durante o desenvolvimento do sistema de baixo nível (ao contrário do http, que requer uma GUI e um navegador completos antes de você poder usá-lo.)

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

(História: infoé semelhante ao Gopher , se você se lembra disso. Era o que tínhamos pouco antes de nos mudarmos para os sistemas operacionais GUI e a Internet explodir. Lembro que o Gopher trabalhou muito bem para encontrar informações, e foi rápido e simples. Era facilmente expansível, totalmente baseado em texto e rápido.)


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

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


2 - contém conteúdo não encontrado nas páginas do manual

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

Esses pacotes de documentação adicionam folhetos a informações, com seções e subseções. No infojargão, eles são chamados nodese os nós podem conter outros nodesem uma estrutura de árvore.

Existem comandos para escalar a árvore, aqui estão alguns exemplos:

  • -se uma secção de, por exemplo, de secção para secção 2.1 2
  • próxima seção (ou seja, mova as dicas de ramificação de página para página), por exemplo, da Seção 2, para a Seção 2.1 e ( assumindo que não há Seção 2.2 ), para a Seção 3
  • direita uma seção, por exemplo, da Seção 2 diretamente para a Seção 3, pulando a seção 2.1

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

Comandos importantes

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


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ó t deste documento. - Geralmente o índice

u - meu pai - Ir 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ó n ext neste nível. por exemplo, seção 2 -> seção 3 (não 2.1)

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

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

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


Também não entendi por que gostaria de usar informações. Eu já havia me envolvido com isso, e a princípio achei a velha escola. Mas como eu precisava de mais algumas informações para um projeto de autoconf , e me sugeriu que era aqui que estava a documentação, fiz outra análise recentemente.

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

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

Conforme aprendi mais, reescrevi a ajuda deles para mim. Eu queria saber quais eram todos os comandos e como eles foram categorizados.

Notei que muitos dos pressionamentos de tecla foram duplicados, com 2 ou 3 maneiras de executar um determinado comando. Notei também que tudo isso parecia muito com o emacs.

Aqui está minha folha de dicas sobre comandos de informação :

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
Vista elíptica
fonte