Some of the Normal Model Commands can have a numeric count to
multiply the effect of the command. If a command supports the count this is
shown as [N].
- :
- Start Command Mode and print `:' to the input box.
- gi
- Set cursor to the first editable element in the page and switch to Input
Mode.
- i
- Set cursor to the last focused element in the page and switch to Input
Mode. If no element was focused before the first element is focused like
with `gi'.
- CTRL-Z
- Switch Vimb into Pass-Through Mode.
- gf
- Open the configured editor (`editor-command') with the current page's
content.
- gF
- Open the Web Inspector for the current page.
- CTRL-V
- Pass the next key press directly to GTK.
- CTRL-Q
- Quit the browser if there are no running downloads.
- o
- Start Command Mode and print `:open ' to the input box.
- O
- Start Command Mode and print `:open URI' to the input box.
- t
- Start Command Mode and print `:tabopen ' to the input box.
- T
- Start Command Mode and print `:tabopen URI' to the input box.
- gh
- Open the configured home-page.
- gH
- Open the configured home-page in a new window.
- u
- Open the last closed page.
- U
- Open the last closed page in a new window.
- CTRL-P
- Open the oldest entry from the read it later queue in the current browser
window.
- ["x]p
- Open the URI out of the register x or, if not given, from the
clipboard.
- ["x]P
- Open the URI out of the register x or, if not given, from the
clipboard in a new window.
- [N]CTRL-O
- Go back N steps in the browser history.
- [N]CTRL-I
- Go forward N steps in the browser history.
- [N]gu
- Go to the Nth descendent directory of the current opened URI.
- gU
- Go to the domain of the current opened page.
- r
- Reload the website.
- R
- Reload the website without using caches.
- CTRL-C
- Stop loading the current page.
- CTRL-LeftMouse,
MiddleMouse
- Opens the clicked link in a new window.
- Shift-LeftMouse
- Push the link url under the cursor to the end of the Read It Later queue
like the `:qpush' command.
- [N]CTRL-F
- Scroll N pages down.
- [N]CTRL-B
- Scroll N pages up.
- [N]CTRL-D
- Scroll N half pages down.
- [N]CTRL-U
- Scroll N half pages up.
- [N]gg
- Scroll to the top of the current page. Or if N is given to
N% of the page.
- [N]G
- Scroll to the bottom of the current page. Or if N is given to
N% of the page.
- 0, ^
- Scroll to the absolute left of the document. Unlike in Vim, 0 and ^ work
exactly the same way.
- $
- Scroll to the absolute right of the document.
- [N]h
- Scroll N steps to the left of page.
- [N]l
- Scroll N steps to the right of page.
- [N]j
- Scroll page N steps down.
- [N]k
- Scroll page N steps up.
- m{a-z}
- Set a page mark {a-z} at the current position on the page. Such set
marks are only available on the current page; if the page is left, all
marks will be removed.
- m{A-Z}
- Set a page mark {A-Z} at the current position on the page. These
marks are permanent across any page.
- '{a-z}
- Jump to the mark {a-z} on the current page.
- '{A-Z}
- Jump to the global mark {A-Z} on a (possibly) different page.
- ''
- Jumps to the position before the latest jump, or where the last
"m'" command was given.
Hinting in Vimb is how you accomplish the tasks that you would do
with the mouse in common mouse-driven browsers: open a URI, yank a URI, save
a page and so on. When hinting is started, the relevant elements on the page
will be marked by labels generated from configured `hint-keys'. Hints can be
selected by using <Tab>, <C-I> or <C-Tab>, <C-O>, by
typing the chars of the label, or filtering the elements by some text that
is part of the hinted element (like URI, link text, button label) or any
combination of these methods. If <enter> is pressed, the current
active hint will be fired. If only one possible hint remains, this will be
fired automatically.
Syntax: ;{mode}{hint}
Start Hints mode. Different elements depending on mode are
highlighted and `numbered'. Elements can be selected either by typing their
label, or by typing part of their text (hint) to narrow down the
result. When an element has been selected, it is automatically clicked or
used (depending on mode) and hint mode ends.
The filtering of hints by text splits the query at ' ' and use the
single parts as separate queries to filter the hints. This is useful for
hints that have a lot of filterable chars in common and many chars are
required to make a distinct selection. For example ';over tw' will easily
select the second hint out of {'very long link text one', 'very long link
text two'}.
The following keys have special meanings in Hints modes:
- <CR>
- Selects the first highlighted element, or the current focused.
- <Tab>
- Moves the focus to the next hint element.
- <S-Tab>
- Moves the focus to the previous hint element.
- <Esc>, CTRL-C, CTRL-[
- Exits Hints mode without selecting an element.
- Hint modes:
- f
- Is an alias for the ;o hint mode.
- F
- Is an alias for the ;t hint mode.
- ;o
- Open hint's location in the current window.
- ;t
- Open hint's location in a new window.
- ;s
- Saves the hint's destination under the configured `download-path'.
- ;O
- Generate an `:open' prompt with hint's URI.
- ;T
- Generate an `:tabopen' prompt with hint's URI.
- ;e
- Open the configured editor (`editor-command') with the hinted form
element's content. If the file in editor is saved and the editor is
closed, the file content will be put back in the form field.
- ;i
- Open hinted image in the current window.
- ;I
- Open hinted image in a new window.
- ;k
- Kill (remove) hinted element from the page.
- ;p
- Push the hint's URI to the end of the Read It Later queue like the
`:qpush' command. This is only available if Vimb was compiled with the
QUEUE feature.
- ;P
- Push the hint's URI to the beginning of the Read It Later queue like the
`:qunshift' command. This is only available if Vimb was compiled with the
QUEUE feature.
- ;x
- Hints like ;o, but instead of opening the hinted URI, the `x-hint-command'
is run in Vimb.
- ["x];y
- Yank hint's destination location into primary and secondary clipboard and
into the register x.
- ["x];Y
- Yank hint's text description or form text into primary and secondary
clipboard and into the register x.
- Syntax:
g;{mode}{hint}
- Start an extended hints mode and stay there until <Esc> is pressed.
Like normal hinting, except that after a hint is selected, hints remain
visible so that another one can be selected with the same action as the
first. Note that the extended hint mode can only be combined with the
following hint modes I o p P s t y Y.
- Motion
Motions commands are like those for normal mode except
that CTRL is used as modifier. But they can not be used together with a count.
- CTRL-F
- Scroll one page down.
- CTRL-B
- Scroll one page up.
- CTRL-D
- Scroll half page down.
- CTRL-U
- Scroll half page up.
- CTRL-J
- Scroll one step down.
- CTRL-K
- Scroll one step up.
- /QUERY, ?QUERY
- Start searching for QUERY in the current page. / start
search forward, ? in backward direction.
- *, #
- Start searching for the current selected text, or if no text is selected
for the content of the primary or secondary clipboard. * start the
search in forward direction and # in backward direction.
Note that these commands will yank the text selection into the
clipboard and may remove other content from there!
- [N]n
- Search for Nnth next search result depending on current search
direction.
- [N]N
- Search for Nnth previous search result depending on current
search
- <CR>
- Perform a click on element containing the current highlighted search
result. direction.
- [N]zi
- Zoom-In the text of the page by N steps.
- [N]zo
- Zoom-Out the text of the page by N steps.
- [N]zI
- Full-Content Zoom-In the page by N steps.
- [N]zO
- Full-Content Zoom-Out the page by N steps.
- zz
- Reset Zoom.
- ["x]y
- Yank the URI or current page into register x and clipboard.
- ["x]Y
- Yank the current selection into register x and clipboard.
Commands that are listed below are ex-commands like in Vim, that
are typed into the inputbox (the command line of vimb). The commands may
vary in their syntax or in the parts they allow, but in general they follow
a simple syntax.
Syntax: :[:| ][N]cmd[name][!][ lhs][ rhs]
Where lhs (left hand side) must not contain any unescaped
space. The syntax of the rhs (right hand side) if this is available depends
on the command. At the moment the count parts [N] of commands is parsed, but
currently there is no command that uses the count.
Commands that are typed interactivly are normally recorded into
command history and register. To avoid this, the commands can be prefixed by
one or more additional `:' or whitespace.
Multiple commands, separated by a `|' can be given in a single
command line and will be executed consecutively. The pipe can be included as
an argument to a command by escaping it with a backslash.
Following commands process the entire command-line string literally. These
commands will include any `|' as part of their argument string and so can
not be followed by another command.
- -
- autocmd
- -
- cmap, cnoremap, imap, inoremap, nmap, nnoremap
- -
- eval
- -
- normal
- -
- open, tabopen
- -
- shellcmd
- <Esc>, CTRL-[, CTRL-C
- Ignore all typed content and switch back to normal mode.
- <CR>
- Submit the entered `ex` command or search query to run it.
- CTRL-H
- Deletes the char before the cursor.
- CTRL-W
- Deletes the last word before the cursor.
- CTRL-U
- Remove everything between cursor and prompt.
- CTRL-B
- Moves the cursor directly behind the prompt `:'.
- CTRL-E
- Moves the cursor after the prompt in inputbox.
- CTRL-V
- Pass the next key press directly to GTK.
- CTRL-R
{a-z"%:/;}
- Insert the content of given register at cursor position. See also section
about `:reg[ister]' command.
- <Tab>
- Start completion of the content in the inputbox in forward direction.
- <S-Tab>
- Start completion of the content in the inputbox in backward
direction.
- <Up>
- Step backward in the command history.
- <Down>
- Step forward in the command history. Yank the current selection into
register x and clipboard.
- :o[pen] [URI]
- Open the give URI in the current window. If URI is empty,
the configured 'home-page' is opened.
- :t[abopen] [URI]
- Open the give URI in a new window. If URI is empty, the
configured 'home-page' is opened.
Key mappings allow users to alter the actions of key presses. Each
key mapping is associated with a mode and only has effect when the mode is
active. The following commands allow the user to substitute one sequence of
key presses by another.
Syntax: :{m}map {lhs} {rhs}
Note that the lhs ends with the first found space. If you
want to use space also in the {lhs} you have to escape this with a single
'\', as shown in the examples.
The rhs starts with the first non-space char. If you want a
rhs that starts with a space, you have to use
"<Space>".
Standard key mapping commands are provided for these modes
m:
- n
- Normal mode: when browsing normally.
- i
- Insert mode: when interacting with text fields on a website.
- c
- Command Line mode: when typing into Vimb's command line.
Most keys in key sequences are represented simply by the character
that you see on the screen when you type them. However, as a number of these
characters have special meanings, and a number of keys have no visual
representation, a special notation is required.
As special key names have the format <...>. The
following special keys can be used: <Left>, <Up>, <Right>,
<Down> for the cursor keys, <Tab>, <Esc>, <CR>,
<Space>, <BS>, <F1>-<F12> and
<C-A>-<C-Z>. If you want an actual sequence of keys like
"<", "C", "R", ">" then escape
with a backslash: "<CR>". If you want a backslash followed
by a special key then use <Bslash>.
- :nm[ap] {lhs} {rhs}
- :im[ap] {lhs} {rhs}
- :cm[ap] {lhs} {rhs}
- Map the key sequence lhs to rhs for the modes where the map
command applies. The result, including rhs, is then further scanned
for mappings. This allows for nested and recursive use of mappings.
- :cmap <C-G>h /home/user/downloads/
- Adds a keybind to insert a file path into the input box. This could be
useful for the `:save' command that could be used as ":save
^Gh".
- :nmap <F1> :set scripts=on<CR>:open
!glib<Tab><CR>
- This will enable scripts and lookup the first bookmarked URI with the tag
`glib' and open it immediately if F1 key is pressed.
- :nmap \ \ 50G
- Example which maps two spaces to go to 50% of the page.
- :nn[oremap] {lhs} {rhs}
- :ino[remap] {lhs} {rhs}
- :cno[remap] {lhs} {rhs}
- Map the key sequence lhs to rhs for the mode where the map
command applies. Disallow mapping of rhs, to avoid nested and
recursive mappings. Often used to redefine a command.
- :nu[nmap] {lhs}
- :iu[nmap] {lhs}
- :cu[nmap] {lhs}
- Remove the mapping of lhs for the applicable mode.
- :bma [tags]
- Save the current opened URI with tags to the bookmark file.
- :bmr [URI]
- Removes all bookmarks for given URI or, if not given, the current
opened page.
Handlers allow specifying external scripts to handle alternative
URI methods.
- :handler-add handler=cmd
- Adds a handler to direct handler links to the external cmd.
The cmd can contain one placeholder `%s` that will be filled by the
full URI given when the command is called.
- :handler-add mailto=urxvt -e mutt %s
- to start email client for mailto links.
- :handler-add magnet=xdg-open %s
- to open magnet links with xdg-open.
- :handler-add ftp=urxvt -e wget %s -P ~/ftp-downloads
- to handle ftp downloads via wget.
- :handler-remove handler
- Remove the handler for the given URI handler.
Shortcuts allow the opening of an URI built up from a named
template with additional parameters. If a shortcut named 'dd' is defined,
you can use it with `:open dd list of parameters' to open the generated
URI.
Shortcuts are convenient to use with search engines where the URI
is standardised and a single parameter is user defined.
- :shortcut-add shortcut=URI
- Adds a shortcut with the shortcut and URI template. The
URI can contain multiple placeholders $0-$9 that will be filled by
the parameters given when the shortcut is called. The parameters given
when the shortcut is called will be split into as many parameters like the
highest used placeholder.
To use spaces within the parameters, the parameters can be
grouped by surrounding them with single-or double quotes-as shown in
example shortcut `map'.
- :shortcut-add dl=https://duckduckgo.com/lite/?q=$0
- to setup a search engine. Can be called by `:open dl my search
phrase'.
- :shortcut-add gh=https://github.com/$0/$1
- to build URIs from given parameters. Can be called `:open gh fanglingsu
vimb'.
- :shortcut-add map=https://maps.google.com/maps?saddr=$0&daddr=$1
- to search for a route, all but the last parameter must be quoted if they
contain spaces like `:open map "city hall, London" railway
station, London'
- :shortcut-remove shortcut
- Remove the search engine to the given shortcut.
- :shortcut-default shortcut
- Set the shortcut for given shortcut as the default, that is the
shortcut to be used if no shortcut is given and the string to open is not
an URI. It doesn't matter if the shortcut is already in use or not
to be able to set it.
- :se[t] var=value
- Set configuration values named by var. To set boolean variable you
should use 'on', 'off' or 'true' and 'false'. Colors are given as
hexadecimal value like '#f57700'. Spaces or more equals signs in
value just work without quotes: for example, ":set
sans-serif-font=Some Sans Font".
- :se[t] var+=value
- Add the value to a number option, or append the value to a
string option. When the option is a comma separated list, a comma is
added, unless the value was empty.
- :se[t] var^=value
- Multiply the value to a number option, or prepend the value
to a string option. When the option is a comma separated list, a comma is
added, unless the value was empty.
- :se[t] var-=value
- Subtract the value from a number option, or remove the value
from a string option, if it is there. When the option is a comma separated
list, a comma is deleted, unless the option becomes empty.
- :se[t] var?
- Show the current set value of variable. VAR.
- :se[t] var!
- Toggle the value of boolean variable var and display the new set
value.
The queue allows the marking of URIs for later reading. This list
is shared between the single instances of Vimb.
- :qpu[sh] [URI]
- Push URI or, if not given, the current URI to the end of the
queue.
- :qun[shift] [URI]
- Push URI or, if not given, the current URI to the beginning of the
queue.
- :qp[op]
- Open the oldest queue entry in the current browser window and remove it
from the queue.
- :qc[lear]
- Removes all entries from queue.
An autocommand is a command that is executed automatically in
response to some event, such as a URI being opened. Autocommands are very
powerful. Use them with care and they will help you avoid typing many
commands.
Autocommands are built with following properties.
- group
- When the [group] argument is not given, Vimb uses the current group
as defined with ':augroup', otherwise, Vimb uses the group defined with
[group]. Groups are useful to remove multiple grouped
autocommands.
- event
- You can specify a comma separated list of event names. No white space can
be used in this list.
Events:
- LoadStarting
- Fired before a new page is going to be opened. No data has been sent or
received yet, the load may still fail for transport issues.
- LoadStarted
- Fired if a new page is going to be opened. No data has been received yet,
the load may still fail for transport issues.
- LoadCommitted
- Fired if first data chunk has arrived, meaning that the necessary
transport requirements are established, and the load is being performed.
This is the right event to toggle content related setting like 'scripts',
'plugins' and such things.
- LoadFinished
- Fires when everything that was required to display on the page has been
loaded.
- DownloadStarted
- Fired right after a download is started.
- DownloadFinished
- Fired if a Vimb managed download is finished.
- DownloadFailed
- Fired if a Vimb managed download failed.
- pat
- Comma separated list of patterns, matches in order to check if a
autocommand applies to the URI associated to an event. To use ',' within
the single patterns this must be escaped as '\,'.
Patterns:
- *
- Matches any sequence of characters. This includes also '/' in contrast to
shell patterns.
- ?
- Matches any single character except of '/'.
- {one,two}
- Matches 'one' or 'two'. Any '{', ',' and '}' within this pattern must be
escaped by a '\'. '*' and '?' have no special meaning within the curly
braces.
- \
- Use backslash to escape the special meaning of '?*{},' in the pattern or
pattern list.
- cmd
- Any `ex` command vimb understands. The leading ':' is not required.
Multiple commands can be separated by '|'.
- :au[tocmd] [group] {event}
{pat} {cmd}
- Add cmd to the list of commands that Vimb will execute
automatically on event for a URI matching pat
autocmd-patterns. Vimb always adds the cmd after existing
autocommands, so that the autocommands are executed in the order in which
they were given.
- :au[tocmd]! [group] {event}
{pat} {cmd}
- Remove all autocommands associated with event and which pattern
match pat, and add the command cmd. Note that the pattern is
not matched literally to find autocommands to remove, like Vim does. Vimb
matches the autocommand pattern with pat. If [group] is not
given, deletes autocommands in current group, as noted above.
- :au[tocmd]! [group] {event}
{pat}
- Remove all autocommands associated with event and which pattern
matches pat in given group (current group by default).
- :au[tocmd]! [group] * {pat}
- Remove all autocommands with patterns matching pat for all events
in given group (current group by default).
- :au[tocmd]! [group] {event}
- Remove all autocommands for event in given group (current group by
default).
- :au[tocmd]! [group]
- Remove all autocommands in given group (current group by default).
- :aug[roup] {name}
- Define the autocmd group name for the following
":autocmd" commands. The name "end" selects the
default group.
- :aug[roup]! {name}
- Delete the autocmd group name.
Example:
:aug github
: au LoadCommitted * set scripts=off|set cookie-accept=never
: au LoadCommitted http{s,}://github.com/* set scripts=on
:aug end
- :cl[eardata] [dataTypes]
[timespan]
- Asynchronously clears the website data of the given list of
dataTypes modified in the past timespan. Note that the
dataTypes must not contain spaces. If timespan is not given,
all website data will be removed. Note that this effects all running
instances of vimb.
The timespan is given as sequence of
'[multiplier]unit' tupels with following units.
- y
- year (365 days)
- w
- week (7 days)
- d
- day
- h
- hour
- m
- minute
- s
- second
Example:
- :cleardata
- to clear all known website data types without any timespan
restriction.
- :cleardata - 5m
- to clear all known website data types modified in the last 5 minutes.
- :cleardata local-storage,session-storage,cookies
- to completely clear the cookies, local- and session-storage without time
restrictions.
- :cleardata disk-cache 2d4h
- to clear the disk cache that was modified in the past two days and four
hours.
- :sh[ellcmd]! cmd
- Like :sh[ellcmd] but asynchronous.
Example:
:sh! /bin/sh -c 'echo "`date` $VIMB_URI" >> myhistory.txt'
- :sh[ellcmd] cmd
- Runs the given shell cmd syncron and print the output into
inputbox. The following patterns in cmd are expanded: '~username',
'~/', '$VAR' and '${VAR}'. A '\' before these patterns disables the
expansion.
The following environment variables are set for called shell
commands.
- VIMB_URI
- This variable is set by Vimb every time a new page is opened to the URI of
the page.
- VIMB_SELECTION
- This variable is set to the current selected text on the page.
- VIMB_TITLE
- Contains the title of the current opened page.
- VIMB_PID
- Contains the pid of the running Vimb instance.
- VIMB_WIN_ID
- Holds the X-Window id of the Vimb window.
- VIMB_XID
- Holds the X-Window id of the Vimb window or of the embedding window if
Vimb is compiled with XEMBED and started with the -e option.
- :sh[ellcmd]! cmd
- Like :sh[ellcmd] but asynchronous.
Example:
:sh! /bin/sh -c 'echo "`date` $VIMB_URI" >> myhistory.txt'
- :s[ave] [path]
- Download current opened page into configured download directory. If
path is given, download under this file name or path. path
is expanded and can therefore contain '~/', '${ENV}' and '~user'
pattern.
- :so[urce] [file]
- Read ex commands from file.
- :q[uit]
- Close the browser. This will be refused if there are running
downloads.
- :q[uit]!
- Close the browser independent from an running download.
- :reg[ister]
- Display the contents of all registers.
Registers:
- "a — "z
- 26 named registers "a to "z. Vimb fills these registers only
when you say so.
- ":
- Last executed `ex` command.
- ""
- Last yanked content.
- "%
- Curent opened URI.
- "/
- Last search phrase.
- ";
- Contains the last hinted URL.
- :e[val] javascript
- Runs the given javascript in the current page and display the
evaluated value.
Example: :eval document.cookie
- :e[val]! javascript
- Like :eval, but there is nothing print to the input box.
- :no[rmal] [cmds]
- Execute normal mode commands cmds. This makes it possible to
execute normal mode commands typed on the input box.
cmds cannot start with a space. Put a count of 1 (one)
before it, "1 " is one space.
Example: :set scripts!|no! R
- :no[rmal]! [cmds]
- Like :normal, but no mapping is applied to cmds.
- :ha[rdcopy]
- Print current document. Open a GUI dialog where you can select the
printer, number of copies, orientation, etc.