// DO NOT EDIT THIS FILE DIRECTLY!
// It is autogenerated from docstrings by running:
//   $ python3 scripts/dev/src2asciidoc.py

= Commands

In qutebrowser, all keybindings are mapped to commands.

Some commands are hidden, which means they don't show up in the command
completion when pressing `:`, as they're typically not useful to run by hand.

For command arguments, there are also some variables you can use:

- `{url}` expands to the URL of the current page
- `{url:pretty}` expands to the URL in decoded format
- `{clipboard}` expands to the clipboard contents
- `{primary}` expands to the primary selection contents

It is possible to run or bind multiple commands by separating them with `;;`.

== 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, or a specific url.
|<<bookmark-del,bookmark-del>>|Delete a bookmark.
|<<bookmark-load,bookmark-load>>|Load a bookmark.
|<<buffer,buffer>>|Select tab by index or url/title best match.
|<<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.
|<<edit-url,edit-url>>|Navigate to a url formed in an external editor.
|<<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.
|<<history,history>>|Show browsing history.
|<<history-clear,history-clear>>|Clear all browsing history.
|<<home,home>>|Open main startpage in current tab.
|<<insert-text,insert-text>>|Insert text at cursor position.
|<<inspector,inspector>>|Toggle the web inspector.
|<<jseval,jseval>>|Evaluate a JavaScript string.
|<<later,later>>|Execute a command after some time.
|<<messages,messages>>|Show a log of past messages.
|<<navigate,navigate>>|Open typical prev/next links or navigate using the URL path.
|<<open,open>>|Open a URL in the current/[count]th tab.
|<<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.
|<<record-macro,record-macro>>|Start or stop recording a macro.
|<<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.
|<<run-macro,run-macro>>|Run a recorded macro.
|<<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 according to the argument and [count].
|<<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 in a new tab.
|<<window-only,window-only>>|Close all windows except for the current one.
|<<wq,wq>>|Save open pages and quit.
|<<yank,yank>>|Yank something 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.

This updates `~/.local/share/qutebrowser/blocked-hosts` with downloaded host lists and re-reads `~/.config/qutebrowser/blocked-hosts`.

[[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, or not given to print the current binding.


==== 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.
* This command does not replace variables like +\{url\}+.

[[bookmark-add]]
=== bookmark-add
Syntax: +:bookmark-add [*--toggle*] ['url'] ['title']+

Save the current page as a bookmark, or a specific url.

If no url and title are provided, then save the current page as a bookmark. If a url and title have been provided, then save the given url as a bookmark with the provided title. You can view all saved bookmarks on the link:qute://bookmarks[bookmarks page].

==== positional arguments
* +'url'+: url to save as a bookmark. If None, use url of current page.
* +'title'+: title of the new bookmark.

==== optional arguments
* +*-t*+, +*--toggle*+: remove the bookmark instead of raising an error if it already exists.


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

Delete a bookmark.

==== positional arguments
* +'url'+: The url of the bookmark to delete. If not given, use the current page's url.


==== note
* This command does not split arguments after the last argument and handles quotes literally.

[[bookmark-load]]
=== bookmark-load
Syntax: +:bookmark-load [*--tab*] [*--bg*] [*--window*] [*--delete*] '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.
* +*-d*+, +*--delete*+: Whether to delete the bookmark afterwards.

==== note
* This command does not split arguments after the last argument and handles quotes literally.

[[buffer]]
=== buffer
Syntax: +:buffer 'index'+

Select tab by index or url/title best match.

Focuses window if necessary.

==== positional arguments
* +'index'+: The [win_id/]index of the tab to focus. Or a substring in which case the closest match will be focused.


[[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
Syntax: +:download-open ['cmdline']+

Open the last/[count]th download.

If no specific command is given, this will use the system's default application to open the file.

==== positional arguments
* +'cmdline'+: The command which should be used to open the file. A `{}` is expanded to the temporary file name. If no `{}` is
 present, the filename is automatically appended to the
 cmdline.


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

==== note
* This command does not split arguments after the last argument and handles quotes literally.

[[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.

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

Navigate to a url formed in an external editor.

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

==== positional arguments
* +'url'+: URL to edit; defaults to the current page url.

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

[[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
Syntax: +:fullscreen [*--leave*]+

Toggle fullscreen mode.

==== optional arguments
* +*-l*+, +*--leave*+: Only leave fullscreen if it was entered by the page.

[[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*] [*--mode* 'mode'] [*--add-history*]
     ['group'] ['target'] ['args' ['args' ...]]+

Start hinting.

==== positional arguments
* +'group'+: The element types to hint. 

 - `all`: All clickable elements.
 - `links`: Only links.
 - `images`: Only images.
 - `inputs`: Only input fields.
 


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

 - `normal`: Open the link.
 - `current`: 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`.

* +*-m*+, +*--mode*+: The hinting mode to use. 

 - `number`: Use numeric hints.
 - `letter`: Use the chars in the hints->chars settings.
 - `word`: Use hint words based on the html elements and the
 extra words.
 


* +*-a*+, +*--add-history*+: Whether to add the spawned or yanked link to the browsing history.


==== note
* This command does not split arguments after the last argument and handles quotes literally.

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

Show browsing history.

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

[[history-clear]]
=== history-clear
Syntax: +:history-clear [*--force*]+

Clear all browsing history.

Note this only clears the global history (e.g. `~/.local/share/qutebrowser/history` on Linux) but not cookies, the back/forward history of a tab, cache or other persistent data.

==== optional arguments
* +*-f*+, +*--force*+: Don't ask for confirmation.

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

[[insert-text]]
=== insert-text
Syntax: +:insert-text 'text'+

Insert text at cursor position.

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

==== note
* This command does not split arguments after the last argument and handles quotes literally.

[[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 [*--file*] [*--quiet*] [*--world* 'world'] 'js-code'+

Evaluate a JavaScript string.

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

==== optional arguments
* +*-f*+, +*--file*+: Interpret js-code as a path to a file.
* +*-q*+, +*--quiet*+: Don't show resulting JS object.
* +*-w*+, +*--world*+: Ignored on QtWebKit. On QtWebEngine, a world ID or name to run the snippet 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.

[[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.
* This command does not replace variables like +\{url\}+.

[[messages]]
=== messages
Syntax: +:messages [*--plain*] [*--tab*] [*--bg*] [*--window*] ['level']+

Show a log of past messages.

==== positional arguments
* +'level'+: Include messages with `level` or higher severity. Valid values: vdebug, debug, info, warning, error, critical.


==== optional arguments
* +*-p*+, +*--plain*+: Whether to show plaintext (as opposed to html).
* +*-t*+, +*--tab*+: Open in a new tab.
* +*-b*+, +*--bg*+: Open in a background tab.
* +*-w*+, +*--window*+: Open in a new window.

[[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.

==== count
For `increment` and `decrement`, the number to change the URL by. For `up`, the number of levels to go up in the URL.


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

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

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

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

==== optional arguments
* +*-i*+, +*--implicit*+: If opening a new tab, treat the tab as implicit (like clicking on a link).

* +*-b*+, +*--bg*+: Open in a new background tab.
* +*-t*+, +*--tab*+: Open in a new tab.
* +*-w*+, +*--window*+: Open in a new window.
* +*-s*+, +*--secure*+: Force HTTPS.

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

==== note
* This command does not split arguments after the last argument and handles quotes literally.

[[print]]
=== print
Syntax: +:print [*--preview*] [*--pdf* 'file']+

Print the current/[count]th tab.

==== optional arguments
* +*-p*+, +*--preview*+: Show preview instead of printing.
* +*-f*+, +*--pdf*+: The file path to write the PDF to.

==== count
The tab index to print.

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

Add a new quickmark.

You can view all saved quickmarks on the link:qute://bookmarks[bookmarks page].

==== 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. If not given, delete the quickmark for the current page (choosing one arbitrarily
 if there are more than one).


==== note
* This command does not split arguments after the last argument and handles quotes literally.

[[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.

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

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

[[record-macro]]
=== record-macro
Syntax: +:record-macro ['register']+

Start or stop recording a macro.

==== positional arguments
* +'register'+: Which register to store the macro in.

[[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.
* This command does not replace variables like +\{url\}+.

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

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

[[run-macro]]
=== run-macro
Syntax: +:run-macro ['register']+

Run a recorded macro.

==== positional arguments
* +'register'+: Which macro to run.

==== count
How many times to run the macro.

[[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.

[[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*] [*--only-active-window*]
             ['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).
* +*-o*+, +*--only-active-window*+: Saves only tabs of the currently active window.

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

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.
* +'values'+: The value to set, or the values to cycle through.

==== 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.

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

Spawn a command in a shell.

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

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

* +*-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.

[[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 [*--prev*] [*--next*] [*--opposite*]+

Close the current/[count]th tab.

==== optional arguments
* +*-p*+, +*--prev*+: Force selecting the tab before the current tab.
* +*-n*+, +*--next*+: Force selecting the tab after 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. If both are given, use count.

==== positional arguments
* +'index'+: The tab index to focus, starting with 1. The special value `last` focuses the last focused tab (regardless of count).
 Negative indices count from the end, such that -1 is the
 last tab.


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

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

Move the current tab according to the argument and [count].

If neither is given, move it to the first position.

==== positional arguments
* +'index'+: `+` or `-` to move relative to the current tab by count, or a default of 1 space.
 A tab index to move to that index.


==== count
If moving relatively: Offset. If moving absolutely: New position (default: 0). This
 overrides the index argument, if given.


[[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 [*--prev*] [*--next*]+

Close all tabs except for the current one.

==== optional arguments
* +*-p*+, +*--prev*+: Keep tabs before the current.
* +*-n*+, +*--next*+: Keep tabs after 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 in a new tab.

[[window-only]]
=== window-only
Close all windows except for the current one.

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

Save open pages and quit.

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

[[yank]]
=== yank
Syntax: +:yank [*--sel*] [*--keep*] ['what']+

Yank something to the clipboard or primary selection.

==== positional arguments
* +'what'+: What to yank. 

 - `url`: The current URL.
 - `pretty-url`: The URL in pretty decoded form.
 - `title`: The current page's title.
 - `domain`: The current scheme, domain, and port number.
 - `selection`: The selection under the cursor.
 



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

[[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 is given, the zoom is set to the default zoom. If both are given, use [count].

==== 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.
|<<clear-messages,clear-messages>>|Clear all message notifications.
|<<click-element,click-element>>|Click the element matching the given filter.
|<<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-focus,completion-item-focus>>|Shift the focus of the completion menu to another 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.
|<<jump-mark,jump-mark>>|Jump to the mark named by `key`.
|<<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.
|<<prompt-accept,prompt-accept>>|Accept the current prompt.
|<<prompt-item-focus,prompt-item-focus>>|Shift the focus of the prompt file completion menu to another item.
|<<prompt-open-download,prompt-open-download>>|Immediately open a download.
|<<repeat-command,repeat-command>>|Repeat the last executed command.
|<<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-kill-word,rl-backward-kill-word>>|Remove chars from the cursor to the beginning of the word.
|<<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-filename-rubout,rl-unix-filename-rubout>>|Remove chars from the cursor to the previous path separator.
|<<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.
|<<run-with-count,run-with-count>>|Run a command with the given count.
|<<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.
|<<set-mark,set-mark>>|Set a mark at the current scroll position in the current tab.
|<<toggle-selection,toggle-selection>>|Toggle caret selection mode.
|==============
[[clear-keychain]]
=== clear-keychain
Clear the currently entered key chain.

[[clear-messages]]
=== clear-messages
Clear all message notifications.

[[click-element]]
=== click-element
Syntax: +:click-element [*--target* 'target'] [*--force-event*] 'filter' 'value'+

Click the element matching the given filter.

The given filter needs to result in exactly one element, otherwise, an error is shown.

==== positional arguments
* +'filter'+: How to filter the elements. id: Get an element based on its ID.

* +'value'+: The value to filter for.

==== optional arguments
* +*-t*+, +*--target*+: How to open the clicked element (normal/tab/tab-bg/window).
* +*-f*+, +*--force-event*+: Force generating a fake click event.

[[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-focus]]
=== completion-item-focus
Syntax: +:completion-item-focus 'which'+

Shift the focus of the completion menu to another item.

==== positional arguments
* +'which'+: 'next', 'prev', 'next-category', or 'prev-category'.

[[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.

[[jump-mark]]
=== jump-mark
Syntax: +:jump-mark 'key'+

Jump to the mark named by `key`.

==== positional arguments
* +'key'+: mark identifier; capital indicates a global mark

[[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.

==== count
How many times to show the message

[[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.

[[prompt-accept]]
=== prompt-accept
Syntax: +:prompt-accept ['value']+

Accept the current prompt.

==== positional arguments
* +'value'+: If given, uses this value instead of the entered one. For boolean prompts, "yes"/"no" are accepted as value.


[[prompt-item-focus]]
=== prompt-item-focus
Syntax: +:prompt-item-focus 'which'+

Shift the focus of the prompt file completion menu to another item.

==== positional arguments
* +'which'+: 'next', 'prev'

[[prompt-open-download]]
=== prompt-open-download
Syntax: +:prompt-open-download ['cmdline']+

Immediately open a download.

If no specific command is given, this will use the system's default application to open the file.

==== positional arguments
* +'cmdline'+: The command which should be used to open the file. A `{}` is expanded to the temporary file name. If no `{}` is
 present, the filename is automatically appended to the
 cmdline.


==== note
* This command does not split arguments after the last argument and handles quotes literally.

[[repeat-command]]
=== repeat-command
Repeat the last executed command.

==== count
Which count to pass the command.

[[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-kill-word]]
=== rl-backward-kill-word
Remove chars from the cursor to the beginning of the word.

This acts like readline's backward-kill-word. Any non-alphanumeric character is considered a word delimiter.

[[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-filename-rubout]]
=== rl-unix-filename-rubout
Remove chars from the cursor to the previous path separator.

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

[[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. Whitespace is used as a word delimiter.

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

This acts like readline's yank.

[[run-with-count]]
=== run-with-count
Syntax: +:run-with-count 'count-arg' 'command'+

Run a command with the given count.

If run_with_count itself is run with a count, it multiplies count_arg.

==== positional arguments
* +'count-arg'+: The count to pass to the command.
* +'command'+: The command to run, with optional args.

==== count
The count that run_with_count itself received.

==== 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.
* This command does not replace variables like +\{url\}+.

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

Scroll the current tab in the given direction.

Note you can use `:run-with-count` to have a keybinding with a bigger scroll increment.

==== 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 y-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.

[[set-mark]]
=== set-mark
Syntax: +:set-mark 'key'+

Set a mark at the current scroll position in the current tab.

==== positional arguments
* +'key'+: mark identifier; capital indicates a global mark

[[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-log-capacity,debug-log-capacity>>|Change the number of log lines to be stored in RAM.
|<<debug-log-filter,debug-log-filter>>|Change the log filter for console logging.
|<<debug-log-level,debug-log-level>>|Change the log level for console logging.
|<<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-log-capacity]]
=== debug-log-capacity
Syntax: +:debug-log-capacity 'capacity'+

Change the number of log lines to be stored in RAM.

==== positional arguments
* +'capacity'+: Number of lines for the log.

[[debug-log-filter]]
=== debug-log-filter
Syntax: +:debug-log-filter 'filters'+

Change the log filter for console logging.

==== positional arguments
* +'filters'+: A comma separated list of logger names.

[[debug-log-level]]
=== debug-log-level
Syntax: +:debug-log-level 'level'+

Change the log level for console logging.

==== positional arguments
* +'level'+: The log level to set.

[[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.

