= Commands

== Normal commands
.Quick reference
[options="header",width="75%",cols="25%,75%"]
|==============
|Command|Description
|<<adblock-update,adblock-update>>|Update the adblock block lists.
|<<back,back>>|Go back in the history of the current tab.
|<<bind,bind>>|Bind a key to a command.
|<<bookmark-add,bookmark-add>>|Save the current page as a bookmark.
|<<bookmark-del,bookmark-del>>|Delete a bookmark.
|<<bookmark-load,bookmark-load>>|Load a bookmark.
|<<close,close>>|Close the current window.
|<<download,download>>|Download a given URL, or current page if no URL given.
|<<download-cancel,download-cancel>>|Cancel the last/[count]th download.
|<<download-clear,download-clear>>|Remove all finished downloads from the list.
|<<download-delete,download-delete>>|Delete the last/[count]th download from disk.
|<<download-open,download-open>>|Open the last/[count]th download.
|<<download-remove,download-remove>>|Remove the last/[count]th download from the list.
|<<download-retry,download-retry>>|Retry the first failed/[count]th download.
|<<fake-key,fake-key>>|Send a fake keypress or key string to the website or qutebrowser.
|<<forward,forward>>|Go forward in the history of the current tab.
|<<fullscreen,fullscreen>>|Toggle fullscreen mode.
|<<help,help>>|Show help about a command or setting.
|<<hint,hint>>|Start hinting.
|<<home,home>>|Open main startpage in current tab.
|<<inspector,inspector>>|Toggle the web inspector.
|<<jseval,jseval>>|Evaluate a JavaScript string.
|<<later,later>>|Execute a command after some time.
|<<navigate,navigate>>|Open typical prev/next links or navigate using the URL path.
|<<open,open>>|Open a URL in the current/[count]th tab.
|<<paste,paste>>|Open a page from the clipboard.
|<<print,print>>|Print the current/[count]th tab.
|<<quickmark-add,quickmark-add>>|Add a new quickmark.
|<<quickmark-del,quickmark-del>>|Delete a quickmark.
|<<quickmark-load,quickmark-load>>|Load a quickmark.
|<<quickmark-save,quickmark-save>>|Save the current page as a quickmark.
|<<quit,quit>>|Quit qutebrowser.
|<<reload,reload>>|Reload the current/[count]th tab.
|<<repeat,repeat>>|Repeat a given command.
|<<report,report>>|Report a bug in qutebrowser.
|<<restart,restart>>|Restart qutebrowser while keeping existing tabs open.
|<<save,save>>|Save configs and state.
|<<search,search>>|Search for a text on the current page. With no text, clear results.
|<<session-delete,session-delete>>|Delete a session.
|<<session-load,session-load>>|Load a session.
|<<session-save,session-save>>|Save a session.
|<<set,set>>|Set an option.
|<<set-cmd-text,set-cmd-text>>|Preset the statusbar to some text.
|<<spawn,spawn>>|Spawn a command in a shell.
|<<stop,stop>>|Stop loading in the current/[count]th tab.
|<<tab-clone,tab-clone>>|Duplicate the current tab.
|<<tab-close,tab-close>>|Close the current/[count]th tab.
|<<tab-detach,tab-detach>>|Detach the current tab to its own window.
|<<tab-focus,tab-focus>>|Select the tab given as argument/[count].
|<<tab-move,tab-move>>|Move the current tab.
|<<tab-next,tab-next>>|Switch to the next tab, or switch [count] tabs forward.
|<<tab-only,tab-only>>|Close all tabs except for the current one.
|<<tab-prev,tab-prev>>|Switch to the previous tab, or switch [count] tabs back.
|<<unbind,unbind>>|Unbind a keychain.
|<<undo,undo>>|Re-open a closed tab (optionally skipping [count] closed tabs).
|<<view-source,view-source>>|Show the source of the current page.
|<<wq,wq>>|Save open pages and quit.
|<<yank,yank>>|Yank the current URL/title to the clipboard or primary selection.
|<<yank-selected,yank-selected>>|Yank the selected text to the clipboard or primary selection.
|<<zoom,zoom>>|Set the zoom level for the current tab.
|<<zoom-in,zoom-in>>|Increase the zoom level for the current tab.
|<<zoom-out,zoom-out>>|Decrease the zoom level for the current tab.
|==============
[[adblock-update]]
=== adblock-update
Update the adblock block lists.

[[back]]
=== back
Syntax: +:back [*--tab*] [*--bg*] [*--window*]+

Go back in the history of the current tab.

==== optional arguments
* +*-t*+, +*--tab*+: Go back in a new tab.
* +*-b*+, +*--bg*+: Go back in a background tab.
* +*-w*+, +*--window*+: Go back in a new window.

==== count
How many pages to go back.

[[bind]]
=== bind
Syntax: +:bind [*--mode* 'MODE'] [*--force*] 'key' 'command'+

Bind a key to a command.

==== positional arguments
* +'key'+: The keychain or special key (inside `<...>`) to bind.
* +'command'+: The command to execute, with optional args.

==== optional arguments
* +*-m*+, +*--mode*+: A comma-separated list of modes to bind the key in (default: `normal`).

* +*-f*+, +*--force*+: Rebind the key if it is already bound.

==== note
* This command does not split arguments after the last argument and handles quotes literally.
* With this command, +;;+ is interpreted literally instead of splitting off a second command.

[[bookmark-add]]
=== bookmark-add
Save the current page as a bookmark.

[[bookmark-del]]
=== bookmark-del
Syntax: +:bookmark-del 'url'+

Delete a bookmark.

==== positional arguments
* +'url'+: The URL of the bookmark to delete.

==== note
* This command does not split arguments after the last argument and handles quotes literally.
* With this command, +;;+ is interpreted literally instead of splitting off a second command.

[[bookmark-load]]
=== bookmark-load
Syntax: +:bookmark-load [*--tab*] [*--bg*] [*--window*] 'url'+

Load a bookmark.

==== positional arguments
* +'url'+: The url of the bookmark to load.

==== optional arguments
* +*-t*+, +*--tab*+: Load the bookmark in a new tab.
* +*-b*+, +*--bg*+: Load the bookmark in a new background tab.
* +*-w*+, +*--window*+: Load the bookmark in a new window.

==== note
* This command does not split arguments after the last argument and handles quotes literally.
* With this command, +;;+ is interpreted literally instead of splitting off a second command.

[[close]]
=== close
Close the current window.

[[download]]
=== download
Syntax: +:download [*--mhtml*] [*--dest* 'DEST'] ['url'] ['dest-old']+

Download a given URL, or current page if no URL given.

The form `:download [url] [dest]` is deprecated, use `:download --dest [dest] [url]` instead.

==== positional arguments
* +'url'+: The URL to download. If not given, download the current page.

==== optional arguments
* +*-m*+, +*--mhtml*+: Download the current page and all assets as mhtml file.
* +*-d*+, +*--dest*+: The file path to write the download to, or not given to ask.

[[download-cancel]]
=== download-cancel
Syntax: +:download-cancel [*--all*]+

Cancel the last/[count]th download.

==== optional arguments
* +*-a*+, +*--all*+: Cancel all running downloads

==== count
The index of the download to cancel.

[[download-clear]]
=== download-clear
Remove all finished downloads from the list.

[[download-delete]]
=== download-delete
Delete the last/[count]th download from disk.

==== count
The index of the download to delete.

[[download-open]]
=== download-open
Open the last/[count]th download.

==== count
The index of the download to open.

[[download-remove]]
=== download-remove
Syntax: +:download-remove [*--all*]+

Remove the last/[count]th download from the list.

==== optional arguments
* +*-a*+, +*--all*+: Remove all finished downloads.

==== count
The index of the download to remove.

[[download-retry]]
=== download-retry
Retry the first failed/[count]th download.

==== count
The index of the download to retry.

[[fake-key]]
=== fake-key
Syntax: +:fake-key [*--global*] 'keystring'+

Send a fake keypress or key string to the website or qutebrowser.

:fake-key xy - sends the keychain 'xy' :fake-key <Ctrl-x> - sends Ctrl-x :fake-key <Escape> - sends the escape key

==== positional arguments
* +'keystring'+: The keystring to send.

==== optional arguments
* +*-g*+, +*--global*+: If given, the keys are sent to the qutebrowser UI.

[[forward]]
=== forward
Syntax: +:forward [*--tab*] [*--bg*] [*--window*]+

Go forward in the history of the current tab.

==== optional arguments
* +*-t*+, +*--tab*+: Go forward in a new tab.
* +*-b*+, +*--bg*+: Go forward in a background tab.
* +*-w*+, +*--window*+: Go forward in a new window.

==== count
How many pages to go forward.

[[fullscreen]]
=== fullscreen
Toggle fullscreen mode.

[[help]]
=== help
Syntax: +:help [*--tab*] [*--bg*] [*--window*] ['topic']+

Show help about a command or setting.

==== positional arguments
* +'topic'+: The topic to show help for. 

 - :__command__ for commands.
 - __section__\->__option__ for settings.


==== optional arguments
* +*-t*+, +*--tab*+: Open in a new tab.
* +*-b*+, +*--bg*+: Open in a background tab.
* +*-w*+, +*--window*+: Open in a new window.

[[hint]]
=== hint
Syntax: +:hint [*--rapid*] ['group'] ['target'] ['args' ['args' ...]]+

Start hinting.

==== positional arguments
* +'group'+: The hinting mode to use. 

 - `all`: All clickable elements.
 - `links`: Only links.
 - `images`: Only images.
 


* +'target'+: What to do with the selected element. 

 - `normal`: Open the link in the current tab.
 - `tab`: Open the link in a new tab (honoring the
 background-tabs setting).
 - `tab-fg`: Open the link in a new foreground tab.
 - `tab-bg`: Open the link in a new background tab.
 - `window`: Open the link in a new window.
 - `hover` : Hover over the link.
 - `yank`: Yank the link to the clipboard.
 - `yank-primary`: Yank the link to the primary selection.
 - `run`: Run the argument as command.
 - `fill`: Fill the commandline with the command given as
 argument.
 - `download`: Download the link.
 - `userscript`: Call a userscript with `$QUTE_URL` set to the
 link.
 - `spawn`: Spawn a command.
 


* +'args'+: Arguments for spawn/userscript/run/fill. 

 - With `spawn`: The executable and arguments to spawn.
 `{hint-url}` will get replaced by the selected
 URL.
 - With `userscript`: The userscript to execute. Either store
 the userscript in
 `~/.local/share/qutebrowser/userscripts`
 (or `$XDG_DATA_DIR`), or use an absolute
 path.
 - With `fill`: The command to fill the statusbar with.
 `{hint-url}` will get replaced by the selected
 URL.
 - With `run`: Same as `fill`.


==== optional arguments
* +*-r*+, +*--rapid*+: Whether to do rapid hinting. This is only possible with targets `tab` (with background-tabs=true), `tab-bg`,
 `window`, `run`, `hover`, `userscript` and `spawn`.


[[home]]
=== home
Open main startpage in current tab.

[[inspector]]
=== inspector
Toggle the web inspector.

Note: Due a bug in Qt, the inspector will show incorrect request headers in the network tab.

[[jseval]]
=== jseval
Syntax: +:jseval [*--quiet*] 'js-code'+

Evaluate a JavaScript string.

==== positional arguments
* +'js-code'+: The string to evaluate.

==== optional arguments
* +*-q*+, +*--quiet*+: Don't show resulting JS object.

==== note
* This command does not split arguments after the last argument and handles quotes literally.
* With this command, +;;+ is interpreted literally instead of splitting off a second command.

[[later]]
=== later
Syntax: +:later 'ms' 'command'+

Execute a command after some time.

==== positional arguments
* +'ms'+: How many milliseconds to wait.
* +'command'+: The command to run, with optional args.

==== note
* This command does not split arguments after the last argument and handles quotes literally.
* With this command, +;;+ is interpreted literally instead of splitting off a second command.

[[navigate]]
=== navigate
Syntax: +:navigate [*--tab*] [*--bg*] [*--window*] 'where'+

Open typical prev/next links or navigate using the URL path.

This tries to automatically click on typical _Previous Page_ or _Next Page_ links using some heuristics. Alternatively it can navigate by changing the current URL.

==== positional arguments
* +'where'+: What to open. 

 - `prev`: Open a _previous_ link.
 - `next`: Open a _next_ link.
 - `up`: Go up a level in the current URL.
 - `increment`: Increment the last number in the URL.
 - `decrement`: Decrement the last number in the URL.
 



==== optional arguments
* +*-t*+, +*--tab*+: Open in a new tab.
* +*-b*+, +*--bg*+: Open in a background tab.
* +*-w*+, +*--window*+: Open in a new window.

[[open]]
=== open
Syntax: +:open [*--bg*] [*--tab*] [*--window*] ['url']+

Open a URL in the current/[count]th tab.

==== positional arguments
* +'url'+: The URL to open.

==== optional arguments
* +*-b*+, +*--bg*+: Open in a new background tab.
* +*-t*+, +*--tab*+: Open in a new tab.
* +*-w*+, +*--window*+: Open in a new window.

==== count
The tab index to open the URL in.

==== note
* This command does not split arguments after the last argument and handles quotes literally.
* With this command, +;;+ is interpreted literally instead of splitting off a second command.

[[paste]]
=== paste
Syntax: +:paste [*--sel*] [*--tab*] [*--bg*] [*--window*]+

Open a page from the clipboard.

If the pasted text contains newlines, each line gets opened in its own tab.

==== optional arguments
* +*-s*+, +*--sel*+: Use the primary selection instead of the clipboard.
* +*-t*+, +*--tab*+: Open in a new tab.
* +*-b*+, +*--bg*+: Open in a background tab.
* +*-w*+, +*--window*+: Open in new window.

[[print]]
=== print
Syntax: +:print [*--preview*]+

Print the current/[count]th tab.

==== optional arguments
* +*-p*+, +*--preview*+: Show preview instead of printing.

==== count
The tab index to print.

[[quickmark-add]]
=== quickmark-add
Syntax: +:quickmark-add 'url' 'name'+

Add a new quickmark.

==== positional arguments
* +'url'+: The url to add as quickmark.
* +'name'+: The name for the new quickmark.

[[quickmark-del]]
=== quickmark-del
Syntax: +:quickmark-del 'name'+

Delete a quickmark.

==== positional arguments
* +'name'+: The name of the quickmark to delete.

==== note
* This command does not split arguments after the last argument and handles quotes literally.
* With this command, +;;+ is interpreted literally instead of splitting off a second command.

[[quickmark-load]]
=== quickmark-load
Syntax: +:quickmark-load [*--tab*] [*--bg*] [*--window*] 'name'+

Load a quickmark.

==== positional arguments
* +'name'+: The name of the quickmark to load.

==== optional arguments
* +*-t*+, +*--tab*+: Load the quickmark in a new tab.
* +*-b*+, +*--bg*+: Load the quickmark in a new background tab.
* +*-w*+, +*--window*+: Load the quickmark in a new window.

==== note
* This command does not split arguments after the last argument and handles quotes literally.
* With this command, +;;+ is interpreted literally instead of splitting off a second command.

[[quickmark-save]]
=== quickmark-save
Save the current page as a quickmark.

[[quit]]
=== quit
Quit qutebrowser.

[[reload]]
=== reload
Syntax: +:reload [*--force*]+

Reload the current/[count]th tab.

==== optional arguments
* +*-f*+, +*--force*+: Bypass the page cache.

==== count
The tab index to reload.

[[repeat]]
=== repeat
Syntax: +:repeat 'times' 'command'+

Repeat a given command.

==== positional arguments
* +'times'+: How many times to repeat.
* +'command'+: The command to run, with optional args.

==== note
* This command does not split arguments after the last argument and handles quotes literally.
* With this command, +;;+ is interpreted literally instead of splitting off a second command.

[[report]]
=== report
Report a bug in qutebrowser.

[[restart]]
=== restart
Restart qutebrowser while keeping existing tabs open.

[[save]]
=== save
Syntax: +:save ['what' ['what' ...]]+

Save configs and state.

==== positional arguments
* +'what'+: What to save (`config`/`key-config`/`cookies`/...). If not given, everything is saved.


[[search]]
=== search
Syntax: +:search [*--reverse*] ['text']+

Search for a text on the current page. With no text, clear results.

==== positional arguments
* +'text'+: The text to search for.

==== optional arguments
* +*-r*+, +*--reverse*+: Reverse search direction.

==== note
* This command does not split arguments after the last argument and handles quotes literally.
* With this command, +;;+ is interpreted literally instead of splitting off a second command.

[[session-delete]]
=== session-delete
Syntax: +:session-delete [*--force*] 'name'+

Delete a session.

==== positional arguments
* +'name'+: The name of the session.

==== optional arguments
* +*-f*+, +*--force*+: Force deleting internal sessions (starting with an underline).


[[session-load]]
=== session-load
Syntax: +:session-load [*--clear*] [*--temp*] [*--force*] 'name'+

Load a session.

==== positional arguments
* +'name'+: The name of the session.

==== optional arguments
* +*-c*+, +*--clear*+: Close all existing windows.
* +*-t*+, +*--temp*+: Don't set the current session for :session-save.
* +*-f*+, +*--force*+: Force loading internal sessions (starting with an underline).


[[session-save]]
=== session-save
Syntax: +:session-save [*--current*] [*--quiet*] [*--force*] ['name']+

Save a session.

==== positional arguments
* +'name'+: The name of the session. If not given, the session configured in general -> session-default-name is saved.


==== optional arguments
* +*-c*+, +*--current*+: Save the current session instead of the default.
* +*-q*+, +*--quiet*+: Don't show confirmation message.
* +*-f*+, +*--force*+: Force saving internal sessions (starting with an underline).

[[set]]
=== set
Syntax: +:set [*--temp*] [*--print*] ['section'] ['option'] ['value']+

Set an option.

If the option name ends with '?', the value of the option is shown instead. If the option name ends with '!' and it is a boolean value, toggle it.

==== positional arguments
* +'section'+: The section where the option is in.
* +'option'+: The name of the option.
* +'value'+: The value to set.

==== optional arguments
* +*-t*+, +*--temp*+: Set value temporarily.
* +*-p*+, +*--print*+: Print the value after setting.

[[set-cmd-text]]
=== set-cmd-text
Syntax: +:set-cmd-text [*--space*] [*--append*] 'text'+

Preset the statusbar to some text.

==== positional arguments
* +'text'+: The commandline to set.

==== optional arguments
* +*-s*+, +*--space*+: If given, a space is added to the end.
* +*-a*+, +*--append*+: If given, the text is appended to the current text.

==== note
* This command does not split arguments after the last argument and handles quotes literally.
* With this command, +;;+ is interpreted literally instead of splitting off a second command.

[[spawn]]
=== spawn
Syntax: +:spawn [*--userscript*] [*--verbose*] [*--detach*] 'cmdline'+

Spawn a command in a shell.

Note the {url} variable which gets replaced by the current URL might be useful here.

==== positional arguments
* +'cmdline'+: The commandline to execute.

==== optional arguments
* +*-u*+, +*--userscript*+: Run the command as a userscript. Either store the userscript in `~/.local/share/qutebrowser/userscripts`
 (or `$XDG_DATA_DIR`), or use an absolute path.

* +*-v*+, +*--verbose*+: Show notifications when the command started/exited.
* +*-d*+, +*--detach*+: Whether the command should be detached from qutebrowser.

==== note
* This command does not split arguments after the last argument and handles quotes literally.
* With this command, +;;+ is interpreted literally instead of splitting off a second command.

[[stop]]
=== stop
Stop loading in the current/[count]th tab.

==== count
The tab index to stop.

[[tab-clone]]
=== tab-clone
Syntax: +:tab-clone [*--bg*] [*--window*]+

Duplicate the current tab.

==== optional arguments
* +*-b*+, +*--bg*+: Open in a background tab.
* +*-w*+, +*--window*+: Open in a new window.

[[tab-close]]
=== tab-close
Syntax: +:tab-close [*--left*] [*--right*] [*--opposite*]+

Close the current/[count]th tab.

==== optional arguments
* +*-l*+, +*--left*+: Force selecting the tab to the left of the current tab.
* +*-r*+, +*--right*+: Force selecting the tab to the right of the current tab.
* +*-o*+, +*--opposite*+: Force selecting the tab in the opposite direction of what's configured in 'tabs->select-on-remove'.


==== count
The tab index to close

[[tab-detach]]
=== tab-detach
Detach the current tab to its own window.

[[tab-focus]]
=== tab-focus
Syntax: +:tab-focus ['index']+

Select the tab given as argument/[count].

If neither count nor index are given, it behaves like tab-next.

==== positional arguments
* +'index'+: The tab index to focus, starting with 1. The special value `last` focuses the last focused tab.


==== count
The tab index to focus, starting with 1.

[[tab-move]]
=== tab-move
Syntax: +:tab-move ['direction']+

Move the current tab.

==== positional arguments
* +'direction'+: `+` or `-` for relative moving, not given for absolute moving.


==== count
If moving absolutely: New position (default: 0) If moving relatively: Offset.


[[tab-next]]
=== tab-next
Switch to the next tab, or switch [count] tabs forward.

==== count
How many tabs to switch forward.

[[tab-only]]
=== tab-only
Syntax: +:tab-only [*--left*] [*--right*]+

Close all tabs except for the current one.

==== optional arguments
* +*-l*+, +*--left*+: Keep tabs to the left of the current.
* +*-r*+, +*--right*+: Keep tabs to the right of the current.

[[tab-prev]]
=== tab-prev
Switch to the previous tab, or switch [count] tabs back.

==== count
How many tabs to switch back.

[[unbind]]
=== unbind
Syntax: +:unbind 'key' ['mode']+

Unbind a keychain.

==== positional arguments
* +'key'+: The keychain or special key (inside <...>) to unbind.
* +'mode'+: A comma-separated list of modes to unbind the key in (default: `normal`).


[[undo]]
=== undo
Re-open a closed tab (optionally skipping [count] closed tabs).

[[view-source]]
=== view-source
Show the source of the current page.

[[wq]]
=== wq
Syntax: +:wq ['name']+

Save open pages and quit.

==== positional arguments
* +'name'+: The name of the session.

[[yank]]
=== yank
Syntax: +:yank [*--title*] [*--sel*] [*--domain*]+

Yank the current URL/title to the clipboard or primary selection.

==== optional arguments
* +*-t*+, +*--title*+: Yank the title instead of the URL.
* +*-s*+, +*--sel*+: Use the primary selection instead of the clipboard.
* +*-d*+, +*--domain*+: Yank only the scheme, domain, and port number.

[[yank-selected]]
=== yank-selected
Syntax: +:yank-selected [*--sel*] [*--keep*]+

Yank the selected text to the clipboard or primary selection.

==== optional arguments
* +*-s*+, +*--sel*+: Use the primary selection instead of the clipboard.
* +*-k*+, +*--keep*+: If given, stay in visual mode after yanking.

[[zoom]]
=== zoom
Syntax: +:zoom ['zoom']+

Set the zoom level for the current tab.

The zoom can be given as argument or as [count]. If neither of both is given, the zoom is set to the default zoom.

==== positional arguments
* +'zoom'+: The zoom percentage to set.

==== count
The zoom percentage to set.

[[zoom-in]]
=== zoom-in
Increase the zoom level for the current tab.

==== count
How many steps to zoom in.

[[zoom-out]]
=== zoom-out
Decrease the zoom level for the current tab.

==== count
How many steps to zoom out.


== Hidden commands
.Quick reference
[options="header",width="75%",cols="25%,75%"]
|==============
|Command|Description
|<<clear-keychain,clear-keychain>>|Clear the currently entered key chain.
|<<command-accept,command-accept>>|Execute the command currently in the commandline.
|<<command-history-next,command-history-next>>|Go forward in the commandline history.
|<<command-history-prev,command-history-prev>>|Go back in the commandline history.
|<<completion-item-del,completion-item-del>>|Delete the current completion item.
|<<completion-item-next,completion-item-next>>|Select the next completion item.
|<<completion-item-prev,completion-item-prev>>|Select the previous completion item.
|<<drop-selection,drop-selection>>|Drop selection and keep selection mode enabled.
|<<enter-mode,enter-mode>>|Enter a key mode.
|<<follow-hint,follow-hint>>|Follow a hint.
|<<follow-selected,follow-selected>>|Follow the selected text.
|<<leave-mode,leave-mode>>|Leave the mode we're currently in.
|<<message-error,message-error>>|Show an error message in the statusbar.
|<<message-info,message-info>>|Show an info message in the statusbar.
|<<message-warning,message-warning>>|Show a warning message in the statusbar.
|<<move-to-end-of-document,move-to-end-of-document>>|Move the cursor or selection to the end of the document.
|<<move-to-end-of-line,move-to-end-of-line>>|Move the cursor or selection to the end of line.
|<<move-to-end-of-next-block,move-to-end-of-next-block>>|Move the cursor or selection to the end of next block.
|<<move-to-end-of-prev-block,move-to-end-of-prev-block>>|Move the cursor or selection to the end of previous block.
|<<move-to-end-of-word,move-to-end-of-word>>|Move the cursor or selection to the end of the word.
|<<move-to-next-char,move-to-next-char>>|Move the cursor or selection to the next char.
|<<move-to-next-line,move-to-next-line>>|Move the cursor or selection to the next line.
|<<move-to-next-word,move-to-next-word>>|Move the cursor or selection to the next word.
|<<move-to-prev-char,move-to-prev-char>>|Move the cursor or selection to the previous char.
|<<move-to-prev-line,move-to-prev-line>>|Move the cursor or selection to the prev line.
|<<move-to-prev-word,move-to-prev-word>>|Move the cursor or selection to the previous word.
|<<move-to-start-of-document,move-to-start-of-document>>|Move the cursor or selection to the start of the document.
|<<move-to-start-of-line,move-to-start-of-line>>|Move the cursor or selection to the start of the line.
|<<move-to-start-of-next-block,move-to-start-of-next-block>>|Move the cursor or selection to the start of next block.
|<<move-to-start-of-prev-block,move-to-start-of-prev-block>>|Move the cursor or selection to the start of previous block.
|<<open-editor,open-editor>>|Open an external editor with the currently selected form field.
|<<paste-primary,paste-primary>>|Paste the primary selection at cursor position.
|<<prompt-accept,prompt-accept>>|Accept the current prompt.
|<<prompt-no,prompt-no>>|Answer no to a yes/no prompt.
|<<prompt-yes,prompt-yes>>|Answer yes to a yes/no prompt.
|<<rl-backward-char,rl-backward-char>>|Move back a character.
|<<rl-backward-delete-char,rl-backward-delete-char>>|Delete the character before the cursor.
|<<rl-backward-word,rl-backward-word>>|Move back to the start of the current or previous word.
|<<rl-beginning-of-line,rl-beginning-of-line>>|Move to the start of the line.
|<<rl-delete-char,rl-delete-char>>|Delete the character after the cursor.
|<<rl-end-of-line,rl-end-of-line>>|Move to the end of the line.
|<<rl-forward-char,rl-forward-char>>|Move forward a character.
|<<rl-forward-word,rl-forward-word>>|Move forward to the end of the next word.
|<<rl-kill-line,rl-kill-line>>|Remove chars from the cursor to the end of the line.
|<<rl-kill-word,rl-kill-word>>|Remove chars from the cursor to the end of the current word.
|<<rl-unix-line-discard,rl-unix-line-discard>>|Remove chars backward from the cursor to the beginning of the line.
|<<rl-unix-word-rubout,rl-unix-word-rubout>>|Remove chars from the cursor to the beginning of the word.
|<<rl-yank,rl-yank>>|Paste the most recently deleted text.
|<<scroll,scroll>>|Scroll the current tab in the given direction.
|<<scroll-page,scroll-page>>|Scroll the frame page-wise.
|<<scroll-perc,scroll-perc>>|Scroll to a specific percentage of the page.
|<<scroll-px,scroll-px>>|Scroll the current tab by 'count * dx/dy' pixels.
|<<search-next,search-next>>|Continue the search to the ([count]th) next term.
|<<search-prev,search-prev>>|Continue the search to the ([count]th) previous term.
|<<toggle-selection,toggle-selection>>|Toggle caret selection mode.
|==============
[[clear-keychain]]
=== clear-keychain
Clear the currently entered key chain.

[[command-accept]]
=== command-accept
Execute the command currently in the commandline.

[[command-history-next]]
=== command-history-next
Go forward in the commandline history.

[[command-history-prev]]
=== command-history-prev
Go back in the commandline history.

[[completion-item-del]]
=== completion-item-del
Delete the current completion item.

[[completion-item-next]]
=== completion-item-next
Select the next completion item.

[[completion-item-prev]]
=== completion-item-prev
Select the previous completion item.

[[drop-selection]]
=== drop-selection
Drop selection and keep selection mode enabled.

[[enter-mode]]
=== enter-mode
Syntax: +:enter-mode 'mode'+

Enter a key mode.

==== positional arguments
* +'mode'+: The mode to enter.

[[follow-hint]]
=== follow-hint
Syntax: +:follow-hint ['keystring']+

Follow a hint.

==== positional arguments
* +'keystring'+: The hint to follow.

[[follow-selected]]
=== follow-selected
Syntax: +:follow-selected [*--tab*]+

Follow the selected text.

==== optional arguments
* +*-t*+, +*--tab*+: Load the selected link in a new tab.

[[leave-mode]]
=== leave-mode
Leave the mode we're currently in.

[[message-error]]
=== message-error
Syntax: +:message-error 'text'+

Show an error message in the statusbar.

==== positional arguments
* +'text'+: The text to show.

[[message-info]]
=== message-info
Syntax: +:message-info 'text'+

Show an info message in the statusbar.

==== positional arguments
* +'text'+: The text to show.

[[message-warning]]
=== message-warning
Syntax: +:message-warning 'text'+

Show a warning message in the statusbar.

==== positional arguments
* +'text'+: The text to show.

[[move-to-end-of-document]]
=== move-to-end-of-document
Move the cursor or selection to the end of the document.

[[move-to-end-of-line]]
=== move-to-end-of-line
Move the cursor or selection to the end of line.

[[move-to-end-of-next-block]]
=== move-to-end-of-next-block
Move the cursor or selection to the end of next block.

==== count
How many blocks to move.

[[move-to-end-of-prev-block]]
=== move-to-end-of-prev-block
Move the cursor or selection to the end of previous block.

==== count
How many blocks to move.

[[move-to-end-of-word]]
=== move-to-end-of-word
Move the cursor or selection to the end of the word.

==== count
How many words to move.

[[move-to-next-char]]
=== move-to-next-char
Move the cursor or selection to the next char.

==== count
How many lines to move.

[[move-to-next-line]]
=== move-to-next-line
Move the cursor or selection to the next line.

==== count
How many lines to move.

[[move-to-next-word]]
=== move-to-next-word
Move the cursor or selection to the next word.

==== count
How many words to move.

[[move-to-prev-char]]
=== move-to-prev-char
Move the cursor or selection to the previous char.

==== count
How many chars to move.

[[move-to-prev-line]]
=== move-to-prev-line
Move the cursor or selection to the prev line.

==== count
How many lines to move.

[[move-to-prev-word]]
=== move-to-prev-word
Move the cursor or selection to the previous word.

==== count
How many words to move.

[[move-to-start-of-document]]
=== move-to-start-of-document
Move the cursor or selection to the start of the document.

[[move-to-start-of-line]]
=== move-to-start-of-line
Move the cursor or selection to the start of the line.

[[move-to-start-of-next-block]]
=== move-to-start-of-next-block
Move the cursor or selection to the start of next block.

==== count
How many blocks to move.

[[move-to-start-of-prev-block]]
=== move-to-start-of-prev-block
Move the cursor or selection to the start of previous block.

==== count
How many blocks to move.

[[open-editor]]
=== open-editor
Open an external editor with the currently selected form field.

The editor which should be launched can be configured via the `general -> editor` config option.

[[paste-primary]]
=== paste-primary
Paste the primary selection at cursor position.

[[prompt-accept]]
=== prompt-accept
Accept the current prompt.

[[prompt-no]]
=== prompt-no
Answer no to a yes/no prompt.

[[prompt-yes]]
=== prompt-yes
Answer yes to a yes/no prompt.

[[rl-backward-char]]
=== rl-backward-char
Move back a character.

This acts like readline's backward-char.

[[rl-backward-delete-char]]
=== rl-backward-delete-char
Delete the character before the cursor.

This acts like readline's backward-delete-char.

[[rl-backward-word]]
=== rl-backward-word
Move back to the start of the current or previous word.

This acts like readline's backward-word.

[[rl-beginning-of-line]]
=== rl-beginning-of-line
Move to the start of the line.

This acts like readline's beginning-of-line.

[[rl-delete-char]]
=== rl-delete-char
Delete the character after the cursor.

This acts like readline's delete-char.

[[rl-end-of-line]]
=== rl-end-of-line
Move to the end of the line.

This acts like readline's end-of-line.

[[rl-forward-char]]
=== rl-forward-char
Move forward a character.

This acts like readline's forward-char.

[[rl-forward-word]]
=== rl-forward-word
Move forward to the end of the next word.

This acts like readline's forward-word.

[[rl-kill-line]]
=== rl-kill-line
Remove chars from the cursor to the end of the line.

This acts like readline's kill-line.

[[rl-kill-word]]
=== rl-kill-word
Remove chars from the cursor to the end of the current word.

This acts like readline's kill-word.

[[rl-unix-line-discard]]
=== rl-unix-line-discard
Remove chars backward from the cursor to the beginning of the line.

This acts like readline's unix-line-discard.

[[rl-unix-word-rubout]]
=== rl-unix-word-rubout
Remove chars from the cursor to the beginning of the word.

This acts like readline's unix-word-rubout.

[[rl-yank]]
=== rl-yank
Paste the most recently deleted text.

This acts like readline's yank.

[[scroll]]
=== scroll
Syntax: +:scroll 'direction'+

Scroll the current tab in the given direction.

==== positional arguments
* +'direction'+: In which direction to scroll (up/down/left/right/top/bottom).


==== count
multiplier

[[scroll-page]]
=== scroll-page
Syntax: +:scroll-page [*--top-navigate* 'ACTION'] [*--bottom-navigate* 'ACTION'] 'x' 'y'+

Scroll the frame page-wise.

==== positional arguments
* +'x'+: How many pages to scroll to the right.
* +'y'+: How many pages to scroll down.

==== optional arguments
* +*-t*+, +*--top-navigate*+: :navigate action (prev, decrement) to run when scrolling up at the top of the page.

* +*-b*+, +*--bottom-navigate*+: :navigate action (next, increment) to run when scrolling down at the bottom of the page.


==== count
multiplier

[[scroll-perc]]
=== scroll-perc
Syntax: +:scroll-perc [*--horizontal*] ['perc']+

Scroll to a specific percentage of the page.

The percentage can be given either as argument or as count. If no percentage is given, the page is scrolled to the end.

==== positional arguments
* +'perc'+: Percentage to scroll.

==== optional arguments
* +*-x*+, +*--horizontal*+: Scroll horizontally instead of vertically.

==== count
Percentage to scroll.

[[scroll-px]]
=== scroll-px
Syntax: +:scroll-px 'dx' 'dy'+

Scroll the current tab by 'count * dx/dy' pixels.

==== positional arguments
* +'dx'+: How much to scroll in x-direction.
* +'dy'+: How much to scroll in x-direction.

==== count
multiplier

[[search-next]]
=== search-next
Continue the search to the ([count]th) next term.

==== count
How many elements to ignore.

[[search-prev]]
=== search-prev
Continue the search to the ([count]th) previous term.

==== count
How many elements to ignore.

[[toggle-selection]]
=== toggle-selection
Toggle caret selection mode.


== Debugging commands
These commands are mainly intended for debugging. They are hidden if qutebrowser was started without the `--debug`-flag.

.Quick reference
[options="header",width="75%",cols="25%,75%"]
|==============
|Command|Description
|<<debug-all-objects,debug-all-objects>>|Print a list of  all objects to the debug log.
|<<debug-cache-stats,debug-cache-stats>>|Print LRU cache stats.
|<<debug-clear-ssl-errors,debug-clear-ssl-errors>>|Clear remembered SSL error answers.
|<<debug-console,debug-console>>|Show the debugging console.
|<<debug-crash,debug-crash>>|Crash for debugging purposes.
|<<debug-dump-page,debug-dump-page>>|Dump the current page's content to a file.
|<<debug-pyeval,debug-pyeval>>|Evaluate a python string and display the results as a web page.
|<<debug-set-fake-clipboard,debug-set-fake-clipboard>>|Put data into the fake clipboard and enable logging, used for tests.
|<<debug-trace,debug-trace>>|Trace executed code via hunter.
|<<debug-webaction,debug-webaction>>|Execute a webaction.
|==============
[[debug-all-objects]]
=== debug-all-objects
Print a list of  all objects to the debug log.

[[debug-cache-stats]]
=== debug-cache-stats
Print LRU cache stats.

[[debug-clear-ssl-errors]]
=== debug-clear-ssl-errors
Clear remembered SSL error answers.

[[debug-console]]
=== debug-console
Show the debugging console.

[[debug-crash]]
=== debug-crash
Syntax: +:debug-crash ['typ']+

Crash for debugging purposes.

==== positional arguments
* +'typ'+: either 'exception' or 'segfault'.

[[debug-dump-page]]
=== debug-dump-page
Syntax: +:debug-dump-page [*--plain*] 'dest'+

Dump the current page's content to a file.

==== positional arguments
* +'dest'+: Where to write the file to.

==== optional arguments
* +*-p*+, +*--plain*+: Write plain text instead of HTML.

[[debug-pyeval]]
=== debug-pyeval
Syntax: +:debug-pyeval [*--quiet*] 's'+

Evaluate a python string and display the results as a web page.

==== positional arguments
* +'s'+: The string to evaluate.

==== optional arguments
* +*-q*+, +*--quiet*+: Don't show the output in a new tab.

==== note
* This command does not split arguments after the last argument and handles quotes literally.
* With this command, +;;+ is interpreted literally instead of splitting off a second command.

[[debug-set-fake-clipboard]]
=== debug-set-fake-clipboard
Syntax: +:debug-set-fake-clipboard ['s']+

Put data into the fake clipboard and enable logging, used for tests.

==== positional arguments
* +'s'+: The text to put into the fake clipboard, or unset to enable logging.

[[debug-trace]]
=== debug-trace
Syntax: +:debug-trace ['expr']+

Trace executed code via hunter.

==== positional arguments
* +'expr'+: What to trace, passed to hunter.

==== note
* This command does not split arguments after the last argument and handles quotes literally.
* With this command, +;;+ is interpreted literally instead of splitting off a second command.

[[debug-webaction]]
=== debug-webaction
Syntax: +:debug-webaction 'action'+

Execute a webaction.

See http://doc.qt.io/qt-5/qwebpage.html#WebAction-enum for the available actions.

==== positional arguments
* +'action'+: The action to execute, e.g. MoveToNextChar.

==== count
How many times to repeat the action.

