# Conkeror Tutorial

### Reading Key Notation

The first thing you need to know about Conkeror is how to read key notation. Each key combination is written as a hyphenated list of modifiers and key. The codes for the common modifiers are as follows: `C` means Control; `M` means Meta or Alt; and `S` means Shift. Therefore the key combination `C-M-f` means to hold down Control and Meta and press `f`.

The key to scroll down is `C-n`. The key to scroll up is `C-p`

Many commands in Conkeror are run by typing a sequence of two or more key combinations. The notation is simple. Each combination in the sequence is written, in order, separated by spaces. The sequence `C-h t` means to press Control-h, release all keys, then press `t`. `C-h t` is the key sequence to view this tutorial.

The key sequence to exit conkeror is `C-x C-c`.

`C-g` is the abort key. It is used to cancel a command from the minibuffer, or stop a web page from loading.

`Space` and `Backspace` scroll a page down and a page up, respectfully.

### Basic Navigation

To browse to an URL in a new content buffer, type `C-x C-f`. This key sequence works from anywhere in Conkeror. Additionally, if you are already in a content buffer (as opposed to a buffer showing download progress or help), you can navigate the current buffer to a new url with the `g` (find-url) key. The mnemonic is "go". The key sequence `C-x C-v` (find-alternate-url) is also available in content buffers. It is identical to `g` except that the prompt will be pre-filled with the current URL for you to edit.

The `B` key (note uppercase) is bound to the `back` command. Practice basic navigation by typing `g` and entering the text "about:" in the url prompt. To come back to this tutorial from the about: page, type `B`.

### Hinting

The system for interacting with the elements of a document is called the hinting system. With the hinting system, you can do things like follow hyperlinks, copy URLs, focus form fields, and more. Let's use the hinting system to follow a hyperlink. You will receive instructions about how to return here after you follow the hyperlink. If the numbered list and hyperlink following this paragraph are not in view, scroll so that they are.

1. Press `f`. (mnemonic: follow)
2. The hyperlink should be hilighted, with a number on the left side. Type that number and hit enter.

This is a hyperlink.

As a matter of fact, in addition to following links by number, you can also follow them by a substring of the link text. You could select the link above by typing `f t h i s`. When more than one link with similar text is in view, hinting will narrow down the choices as you type. You can always specify the one you want by disambiguating the sequence with the hint number.

But hinting is for more than just hyperlinks. Conkeror provides several hint classes for operating on different types of elements. The hint class is specified by typing the corresponding key sequence of the class before the key sequence of the command. It was not necessary to specify a hint class for following the hyperlink above because links are the default hint class for the follow command. The following table lists the most common hint classes.

key | hint class | mnemonic
`n` | links and form elements | link
`i` | images | image
`m` | frameset frames and top window | frame
`* *` | dom nodes | wildcard

In the hinting system, hint number zero (0) is special. It refers to the current URL in the buffer.

The `c` key is bound to the copy command. Its default hint class is links. To copy the URL of the page you are currently browsing, type `c 0`. To copy the url of a frame or iframe, type `m c`. If there is more than one frame visible, you will be prompted for a number, just as with hyperlinks.

When none of the conventional hint classes cover the element that you want to operate on, you can use the dom-nodes hint class, to choose from among all visible dom nodes. This hint class is bound to `* *`. Try copying the text of this paragraph now by typing `* * c` followed by the hint number for this paragraph.

### Finding Text (Isearch)

`C-s` invokes interactive text search mode, isearch for short. `C-r` invokes reverse isearch. In this mode, just type the text you want to find into the minibuffer and Conkeror will search the document as you type. To jump to the next match, hit `C-s` again. To jump to the previous match, hit `C-r`. To conclude your search, hit `return`, or to abort it, press `escape` or `C-g`. If you have previously concluded an isearch, you can use the keys `S` and `R` to jump to next and previous matches without going back into isearch mode. This is called non-interactive resume. To resume your last successful isearch in interactive mode, hit `C-s` or `C-r` twice.

### Copying Text

Apart from `* * c` described above, there are other ways to copy text for times when what you want to copy does not neatly fill one dom node. The process is straight-forward. First, use isearch (`C-s`) and search for the start of the text you want to copy. When you have brought the search to the start of the text you want to copy, hit `return` to conclude the search. Although no cursor is visible, there is an invisible cursor where the search concluded. Hold the `shift` key and use the arrow keys to make a selection. When you have selected the text you want to copy, release all keys and hit `M-w` to copy the text to the clipboard.

Tip: Although isearch is usually the quickest way to position the cursor, there are other ways. One of them is to use the focus link browser-object command (`n ;`). When you focus a link, the invisible cursor will be left at the first character of the link text, and you can use shifted arrow keys to make a selection from that point. If the methods outlined so far are unsuitable for a situation you encounter, then you can use `M-x caret-mode` to get a small but visible blinking cursor that you can move to where you need it. Call `M-x caret-mode` again to toggle it off.

### What Next

Now that you've completed the tutorial, you should have the basic skills to get around on the web. But there is so much more to learn, and always the possibility of improving your efficiency through configuration. Start by reading the QuickStart, and then explore the Conkeror Wiki on your own. Enjoy!