Moving around pages
In normal mode you move around a page with single keys: no mouse, no modifiers. These work on web pages, about: pages and in the PDF viewer.
Scroll
| To | Press |
|---|---|
| Scroll down / up | j or k |
| Scroll left / right | h or l |
| Half a page down / up | d or u, or Vim's ctrl+d / ctrl+u |
| A step down / up, as Vim does | ctrl+e or ctrl+y |
| Top / bottom of the page | gg or G |
A number before a key repeats it: 5j scrolls five steps.
Follow a link
- Press f. A yellow label, one or two letters, appears on every link, button and field you can see.
- Type a label's letters. A link is followed, a button pressed, a text field focused.
F does the same for links only, and opens the one you pick in a new background tab, so you can pick several in turn. While labels show, Backspace undoes a letter and Esc cancels. Things you cannot see (off screen, or under a cookie banner) get no label: scroll first.
Find text
- Press / and type. Matches light up as you type, and the status bar counts them.
- Press Enter to stay on the match, or Esc to go back to where you were.
- n and N go to the next and the previous match.
A search in lower case ignores case; one capital letter makes it match case exactly. ? searches backwards.
Back, forward, reload
| To | Press |
|---|---|
| Back / forward | H or L, or Vim's ctrl+o / ctrl+i |
| Back three pages | 3H |
| Reload | r |
Addresses and the clipboard
| To | Press |
|---|---|
| Go to the address bar, its text selected | I |
| Copy this page's address | yy |
| Open the address (or search the text) on the clipboard, here / in a new tab | p or P |
| Go up one level in the address / to the site's root | gu or gU |
| Show the page's source | gf |
Jump to a text field
| To | Press |
|---|---|
| Focus the first text field on the page | i |
| Focus the first one you can see / the third | gi or 3gi |
Either one puts you in insert mode; Esc brings you back. See Modes.
All the keys for this page
The default bindings, as Vimma's own ctrl+b ? overlay lists them. Name is the action's name, which you use to remap it or to run it as a : command. Every key is on the keys page.
Navigation (17)
| Action | Keys | Name |
|---|---|---|
| Goto picker: every tab in every workspace | ctrl+b gb | goto_picker |
| Open / close the side panel | ctrl+b b | toggle_sidebar |
| Scroll down | jctrl+e | scroll_down |
| Scroll up | kctrl+y | scroll_up |
| Scroll left | h | scroll_left |
| Scroll right | l | scroll_right |
| Scroll half a page down | dctrl+d | scroll_half_down |
| Scroll half a page up | uctrl+u | scroll_half_up |
| Scroll to top | gg | scroll_top |
| Scroll to bottom | G | scroll_bottom |
| Go back | Hctrl+o | history_back |
| Go forward | Lctrl+i | history_forward |
| Reload page | r | reload |
| Open a URL or search in this tab | no default key | open_url |
| Go up a level in the URL path | gu | url_up |
| Go to the site's root | gU | url_root |
| Focus the address bar (as ctrl+l) | IIvisualIpanel | focus_urlbar |
Page (5)
| Action | Keys | Name |
|---|---|---|
| Copy the page's URL | yy | yank_url |
| Open the clipboard's URL or search in this tab | p | open_clipboard |
| Open the clipboard's URL or search in a new tab | P | open_clipboard_tab |
| Focus the first text field (with a count: the Nth) | gi | focus_input |
| View the page's source in a new tab | gf | view_source |
Hints (3)
| Action | Keys | Name |
|---|---|---|
| Follow link | f | follow_link |
| Follow link in new tab | F | follow_link_new_tab |
| Leave hint mode | eschint | hint_cancel |
Find (4)
| Action | Keys | Name |
|---|---|---|
| Search in page | / | find_forward |
| Search backwards in page | ? | find_backward |
| Next match | n | find_next |
| Previous match | N | find_previous |
Details
Everything below is Vimma's own user guide for this topic, in full: every edge case and exception. You do not need it to get started.
The clipboard keys
p and P read the system clipboard (the one yy and copy mode's y write). The text is trimmed and its line breaks become spaces; one word with a scheme, a dot or a port (https://…, example.com, localhost:3000) loads as a URL, anything else goes to your default search engine. Text that would load as a javascript: or data: URL (also behind view-source:), or is longer than 8192 characters, is refused with a notice and nothing opens. P's tab opens in the current workspace, as :tabnew's does. Page zoom has no Vimma keys: ctrl+plus, ctrl+minus and ctrl+0 work as in Firefox.
Link hints
Link hints let you click without the mouse. f puts a short label on everything you could click on screen: links, buttons, form fields, and elements the page made clickable (ARIA buttons and tabs, elements with a click handler), also inside web components and in frames from other sites. Things off screen, hidden or covered by something else (a fixed header, a cookie banner) get no label. Type a label to pick its target: a link is followed, a button is pressed, a text field gets focus and the tab is in insert mode. Labels use the home row (a s d f g h j k l), in reading order: targets near the top get the shortest. As you type, labels that no longer match disappear. Backspace takes back a key and Esc leaves hints without doing anything.
F labels links only and opens the one you pick in a new tab in the background, so you stay on the page and can pick more.
The labels are drawn by the browser, over the page, not inside it: the page cannot see them, restyle them or hide them. Apps that draw their own controls on a canvas (Google Docs, Figma, maps, games) have nothing to label.
Find
Find works as it does in Vim. / opens Firefox's find bar at the foot of the page, empty, and searches as you type, in frames from other sites, inside web components and in the PDF viewer too. Matches are highlighted and counted as in Firefox. The search starts at the top of what you see (or at the selection, if it is on screen), as Vim's starts at the cursor.
- Case: smartcase. An all lower-case search ignores case (
wordfindsWord); one capital letter makes it match case (Wordfinds onlyWord).ctrl+fuses the same rule. - **
Enter** keeps the match selected and closes the bar; you are back in normal mode. A search that found nothing goes back to where you were, and the status bar saysnot found. - **
Esc** cancels: the bar closes, nothing stays selected and the page scrolls back to where it was when you pressed/. - **
n/N** jump to the next / previous match without opening the bar, wrapping at the ends. After a search that found nothing they do nothing. - **
?** searches backward: it shows matches as you type, as/does, andEnterlands on the last match before where you were. After?,ngoes on backward andNforward.
ctrl+f still opens Firefox's own find bar, where Enter goes to the next match.
Known limits
Vimma is pre-alpha. What does not work yet, or works with a catch, is listed on the known limits page:
The guide at the top is written for this site; the details are built from Vimma's docs/guide.md and bindings.md at 1050bcc (2026-10-10).