Next: , Previous: Help-Inv, Up: Getting Started

1.6 Menus and the m command

With only the n (next), p (previous), <SPC>, <BACKSPACE>, ] and [ commands for moving between nodes, nodes are restricted to a linear sequence. Menus allow a branching structure. A menu is a list of other nodes you can move to. It is actually just part of the text of the node formatted specially so that Info can interpret it. The beginning of a menu is always identified by a line which starts with ‘* Menu:. A node contains a menu if and only if it has a line in it which starts that way. The only menu you can use at any moment is the one in the node you are in. To use a menu in any other node, you must move to that node first.

After the start of the menu, each line that starts with a ‘*’ identifies one subtopic. The line usually contains a brief name for the subtopic (followed by a ‘:’, normally hidden in Emacs), the name of the node that talks about that subtopic (again, normally hidden in Emacs), and optionally some further description of the subtopic. Lines in the menu that do not start with a ‘*’ have no special meaning—they are only for the human reader's benefit and do not define additional subtopics. Here is an example:

     * Foo:  Node about FOO.      This tells about FOO.

The subtopic name is Foo, and the node describing it is ‘Node about FOO’. The rest of the line is just for the reader's Information. [[ But this line is not a real menu item, simply because there is no line above it which starts with ‘* Menu:. Also, in a real menu item, the ‘*’ would appear at the very start of the line. This is why the “normally hidden” text in Emacs, namely ‘: Node about FOO.’, is actually visible in this example, even when Visible mode is off.]]

When you use a menu to go to another node (in a way that will be described soon), what you specify is the subtopic name, the first thing in the menu line. Info uses it to find the menu line, extracts the node name from it, and goes to that node. The reason that there is both a subtopic name and a node name is that the node name must be meaningful to the computer and may therefore have to be ugly looking. The subtopic name can be chosen just to be convenient for the user to specify. Often the node name is convenient for the user to specify and so both it and the subtopic name are the same. There is an abbreviation for this:

     * Foo::   This tells about FOO.

This means that the subtopic name and node name are the same; they are both ‘Foo’. (The ‘::’ is normally hidden in Emacs.)

>> Now use <SPC> to find the menu in this node, then come back to
   the front with a b and some <SPC>s.  As you see, a menu is
   actually visible in its node.  If you cannot find a menu in a node
   by looking at it, then the node does not have a menu and the
   m command is not available.

If you keep typing <SPC> once the menu appears on the screen, it will move to another node (the first one in the menu). If that happens, type <BACKSPACE> to come back.

The command to go to one of the subnodes is m. This is very different from the commands you have used: it is a command that prompts you for more input.

The Info commands you know do not need additional input; when you type one of them, Info processes it instantly and then is ready for another command. The m command is different: it needs to know the name of the subtopic. Once you have typed m, Info tries to read the subtopic name.

Now, in the stand-alone Info, look for the line containing many dashes near the bottom of the screen. (This is the stand-alone equivalent for the mode line in Emacs.) There is one more line beneath that one, but usually it is blank. (In Emacs, this is the echo area.) When it is blank, Info is ready for a command, such as n or b or <SPC> or m. If that line contains text ending in a colon, it means Info is reading more input for the last command. You can't type an Info command then, because Info is trying to read input, not commands. You must either give the input and finish the command you started, or type Control-g to cancel the command. When you have done one of those things, the input entry line becomes blank again. Then you can type Info commands again.

The command to go to a subnode via a menu is m. After you type the m, the line at the bottom of the screen says ‘Menu item: ’. You must then type the name of the subtopic you want, and end it with a <RET>.

You can abbreviate the subtopic name. If the abbreviation is not unique, the first matching subtopic is chosen. Some menus put the shortest possible abbreviation for each subtopic name in capital letters, so you can see how much you need to type. It does not matter whether you use upper case or lower case when you type the subtopic. You should not put any spaces at the end, or inside of the item name, except for one space where a space appears in the item in the menu.

You can also use the completion feature to help enter the subtopic name. If you type the <TAB> key after entering part of a name, it will fill in more of the name—as much as Info can deduce from the part you have entered.

If you move the cursor to one of the menu subtopic lines, then you do not need to type the argument: you just type a <RET>, and it stands for the subtopic of the line you are on. You can also click the middle mouse button directly on the subtopic line to go there.

Here is a menu to give you a chance to practice. This menu gives you three ways of going to one place, Help-FOO:

(Turn Visible mode on if you are using Emacs.)

>>  Now type just an m and see what happens:

Now you are “inside” an m command. Commands cannot be used now; the next thing you will type must be the name of a subtopic.

You can change your mind about doing the m by typing Control-g.

>> Try that now;  notice the bottom line clear.
>> Then type another m.
>> Now type BAR, the item name.  Do not type <RET> yet.

While you are typing the item name, you can use the <DEL> (or <BACKSPACE>) key to cancel one character at a time if you make a mistake.

>> Press <DEL> to cancel the ‘R’.  You could type another R
   to replace it.  But you do not have to, since ‘BA’ is a valid
   abbreviation.
>> Now you are ready to go.  Type a <RET>.

After visiting ‘Help-FOO’, you should return here.

Another way to move to the menu subtopic lines and between them is to type <TAB>. Each time you type a <TAB>, you move to the next subtopic line. To move to a previous subtopic line in the stand-alone reader, type M-<TAB>—that is, press and hold the <META> key and then press <TAB>. (On some keyboards, the <META> key might be labeled ‘Alt’.) In Emacs Info, type S-<TAB> to move to a previous subtopic line (press and hold the <Shift> key and then press <TAB>).

Once you move cursor to a subtopic line, press <RET> to go to that subtopic's node.

If your terminal supports a mouse, you have yet another way of going to a subtopic. Move your mouse pointer to the subtopic line, somewhere between the beginning ‘*’ and the colon ‘:’ which ends the subtopic's brief name. You will see the subtopic's name change its appearance (usually, its background color will change), and the shape of the mouse pointer will change if your platform supports that. After a while, if you leave the mouse on that spot, a small window will pop up, saying “Mouse-2: go to that node,” or the same message may appear at the bottom of the screen.

Mouse-2 is the second button of your mouse counting from the left—the middle button on a 3-button mouse. (On a 2-button mouse, you may have to press both buttons together to “press the middle button”.) The message tells you pressing Mouse-2 with the current position of the mouse pointer (on subtopic in the menu) will go to that subtopic.

More generally, Mouse-2 in an Info buffer finds the nearest link to another node and goes there. For example, near a cross reference it acts like f, in a menu it acts like m, on the node's header line it acts like n, p, or u, etc. At end of the node's text Mouse-2 moves to the next node, or up if there's no next node.

>> Type n to see more commands.