1. Setting options
  2. Setting Firefox options
  3. List of options

Pentadactyl has a number of internal variables and switches which can be set to achieve special effects. These options come in 8 forms:

Can only be on or off
A numeric value
A string value
A string containing a discrete set of distinct characters
A comma-separated list of strings. Any comma appearing within single or double quotes, or prefixed with a \, will not be treated as an item separator.
A comma-separated list of key-value pairs, e.g., key:val,foo:bar
A comma-separated list of regular expressions. Expressions may be prefixed with a !, in which case the match will be negated. A literal ! at the beginning of the expression may be matched with [!] or by placing the regular expression in quotes. Generally, the first matching regular expression is used. Any comma appearing within single or double quotes, or prefixed with a \, will not be treated as an item separator.
A combination of a stringmap and a regexplist. Each key in the {key}:{value} pair is a regexp. If the regexp begins with a !, the sense of the match is negated, such that a non-matching expression will be considered a match and vice versa. The first {key} to match yields value.
Like regexplist and regexpmap, but the keys are site-filters rather than regular expressions.

Some options may be given format strings containing macro replacements in the form of <{name}>. These tokens are replaced by the parameter {name} as specified in the relevant documentation. If the token is in the form <q-{name}>, the value of the parameter is automatically quoted. If it is in the form of <e-{name}>, its value is never shown but may be used to test whether the given parameter is empty.

Array elements, such as in the <args> parameter of :command macros, may be accessed by appending [{n}], where {n} is the one-based array index, to the macro name. The first argument of a command is therefore accessed with <args[1]>.

Any substring enclosed by <{ and }> is automatically elided if any of the contained macros aren't currently valid. A literal < or > character may be included with the special escape sequences <lt> or <gt> respectively.

For example, given the format string <{(cmd: <column>) }><{line: <line> }><file>, where line=32 and file=Lieder eines fahrenden Gesellen.txt, the result is formatted as line: 32 'Lieder eines fahrenden Gesellen.txt'

Setting options


Show all options which differ from their default values.

:se[t] all

Show all options.

:se[t] {option}?

Show value of {option}.

:se[t] {option} [...]

For boolean options, turn them on. For all other types, show their values.

:se[t] no{option} [...]

For boolean options, turn them off. For all other types, display an error.

:se[t] {option}! [...]
:se[t] inv{option} [...]

For boolean options, invert their value. For all other types, display an error.

:se[t] inv{option}={value} [...]
:se[t] {option}!={value} [...]

For list options, toggle the specified values.

If the option is a list, the given values are toggled. Given, :set opt=foo,bar then, :set opt!=foo,baz has the same result as :set opt=bar,baz

This extends to string options in a natural way, e.g., :set stal!=always,never toggles between the two values.

:se[t] {option}& [...]

Reset option to its default value.

:se[t] all&

Set all options to their default value.

:se[t] {option}={value} [...]

Set string or number option to {value}. For numeric options the value must be given in decimal. The old value can be inserted by typing c_<Tab>.

:se[t] {option}+={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. If the option is a list of flags, superfluous flags are removed. When adding a flag that was already present the option value doesn't change.

:se[t] {option}^={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] {option}-={value} [...]

Subtract the {value} from a number option, or remove the {value} from a string option if it is there. If the {value} is not found in a string option, there is no error or warning. When the option is a comma separated list, a comma is deleted, unless the option becomes empty. When the option is a list of flags, {value} must be exactly as they appear in the option. Remove flags one by one to avoid problems.


The same as :set command, but operates on current tab options only. See :set for details.


The same as :set command, but operates on global options only. See :set for details.

Environment variables are expanded for path options like 'cdpath' and 'runtimepath'. The variable notation is $VAR (terminated by a non-word character) or ${VAR}. %VAR% is also supported on Windows.

Setting Firefox options

Firefox options can be viewed and set with the following commands:


Show the Firefox preferences dialog. You can change the browser preferences from this dialog. Be aware that not all Firefox preferences work, because Pentadactyl overrides some key bindings and changes Firefox's GUI.


Opens about:config in the current tab, where you can change advanced Firefox preferences.

:se[t]! …

The same as :set but operates on Firefox preferences (those on the about:config page). See :set for operator details.

Note: The no and inv prefix operators are not available for setting preferences.

Pentadactyl needs to set several Firefox preferences at startup in order to function properly. If this is unacceptable, they can be changed in your RC file with the :set! command, but beware of unexpected behavior. The affected preferences are:

List of options

'activate' 'act'

stringlist(default: addons,bookmarks,diverted,downloads,extoptions, help,homepage,quickmark,tabopen,paste)

A list of items which, when opened in a new tab, are automatically focused. Available items:

Activate all items.
:addo[ns] command
Tabs loaded from bookmarks
Links with targets set to new tabs
:downl[oads] command
:exto[ptions] command
:h[elp] command
gH mapping
Middle- or Control-clicked links
go and gn mappings
:tabopen[!] command
P and gP mappings
'altwildmode' 'awim'

stringlist(default: list:full)

Like 'wildmode', but when the c_<A-Tab> key is pressed.

'autocomplete' 'au'

regexplist(default: .*)

Enables automatic completion for completion contexts (see :contexts) matching the given regular expressions. When automatic completion is enabled, the completion list is automatically opened when the command line is focused. Thereafter, any key press triggers a completion update for the matching contexts. Non-matching contexts will only be updated when the c_<Tab> key is pressed. This option is useful for disabling auto-completion for computationally intensive contexts that don't perform well when your system is under load.

Note: Completion contexts have names very much like Unix path names. These denote the tree in which they're called. A completer will never be called unless every completer preceding it in the tree was also called. For example, if your completer excludes /ex/, it will also exclude /ex/bmarks, and so on.

To enable auto-completion for everything but :history or :bmarks, you would choose a value such as !/ex/(bmarks|history),.?

To go in the other direction, i.e. only enable auto-completion for those commands, you have to jump through some hoops, due to the way contexts work (see the note above): /ex/(bmarks|history),^(/|/ex/?)$

'banghist' 'bh'

boolean(default: on)

Replace occurrences of ! with the previous command when executing external commands.

'cdpath' 'cd'

stringlist(default: equivalent to . or .,$CDPATH)

List of directories searched when executing the :cd command. This is only used for relative paths; if an absolute path is specified, this option is ignored.

If the CDPATH environment variable is set this path list is appended to the default value of ..

'cookieaccept' 'ca'

string(default: all)

When to accept cookies.

Accept all cookies
Accept no cookies
Accept all non-third-party cookies

string(default: default)

The lifetime for which to accept cookies. The available options are:

The lifetime requested by the setter
Always prompt for a lifetime
The current session
When a number is given, it is interpreted as the number of days for which to keep cookies
'cookies' 'ck'

stringlist(default: session)

The default action for the :cookies command.

'complete' 'cpt'

charlist(default: slf)

Items which are completed at the :open prompts. Available items:

Search engines and keyword URLs
Local files
Firefox location bar entries (bookmarks and history sorted in an intelligent way)
Search engine suggestions

The order is important, such that :set complete=bsf will list bookmarks followed by matching quick searches and then matching files.

Warning: Using b and h can make completion very slow if there are many items.


stringlist(default: -active,+filename)

:downloads sort order, in order of precedence. Each element must be preceded by a + or -, indicating ascending or descending sorting, respectively. Valid sort orders are:

Whether download is active
Percent complete
Date and time the download began
Target filename
File size
Download speed
Time remaining
Source URL
'defsearch' 'ds'

string(default: google)

Sets the default search engine. The default search engine is used by :open and related commands for arguments which include no search or bookmark keywords and can't otherwise be converted into URLs or existing file names.

This means that with 'defsearch' set to youtube, :open Tim Minchin behaves exactly as :open youtube Tim Minchin, so long as you don't have a search or bookmark keyword called ‘Tim’.


string(default: gvim -f +<line> +"sil! call cursor(0, <column>)" <file>)

Set the external text editor. This is the editor used by I_<C-i>, gF, and other commands which launch an external text editor.

Accepts a macro-string with the following escapes available. Arguments containing escapes which are not relevant to a given call are automatically elided. All field splitting is done before format characters are processed.

The file to edit. Appended as the final argument if missing.
The line number at which to position the cursor.
The column at which to position the cursor.

Warning: Pentadactyl will not behave correctly if the editor forks its own process rather than blocking until editing is complete. Gvim invoked without the -f option is one such example.

'encoding' 'enc'

string(default: UTF-8)

Changes the character encoding of the current buffer. Valid only until a new page is loaded.

'errorbells' 'eb'

boolean(default: off)

Ring the bell when an error message is displayed. See also 'visualbell'.

'eventignore' 'ei'

stringlist(default: (empty))

A list of autocommand event names which should be ignored. If the list contains the value all then all events are ignored.

'exrc' 'ex'

boolean(default: off)

Allow reading of an RC file in the current directory. This file is sourced after the default pentadactylrc file in your home directory.

'extendedhinttags' 'eht'

regexpmap(default: [asOTvVWy]:a[href],area[href],img[src],iframe[src], [f]:body, [F]:body,code,div,html,p,pre,span, [iI]:img, [S]:button,'input:not([type=hidden])',select,textarea)

Defines specialized CSS selectors or XPath expressions for arbitrary extended-hints modes. The syntax is the same as for 'hinttags'. If no matches are found, the value of 'hinttags' is used.

'fileencoding' 'fenc'

string(default: UTF-8)

Changes the character encoding that Pentadactyl uses to read and write files.

'findcase' 'fc'

string(default: smart)

Find case matching mode.

Case is never significant
Case is always significant
Case is significant when capital letters are typed
'followhints' 'fh'

number(default: 0)

Define the conditions under which hints selected by typing the link substring are followed. Hints selected by typing their label (as specified by 'hintkeys') are always followed immediately.

Possible values:

Follow the first hint as soon as typed text uniquely identifies it.
Follow the selected hint on <CR>.
'fullscreen' 'fs'

boolean(default: off)

Show the current window full-screen. Also hide certain GUI elements, such as status-line and tab bar.

'guioptions' 'go'

charlist(default: bCrs)

Show or hide certain GUI elements.

Supported characters:

Bookmark bar
Always show the command line outside of the status line
Always show messages outside of the status line
Tab number over image
Bottom scrollbar
Always show the command line, even when empty
Left scrollbar (l and r are mutually exclusive)
Menu bar
Tab number
Right scrollbar
Status bar

See also 'showtabline'.

Note: Scrollbar changes require a page reload to take effect.

Note: Only one of l or r may be included.

'helpfile' 'hf'

string(default: intro)

Name of the main help file. This is that page shown if the :help command is called without any arguments.

'hintinputs' 'hin'

stringlist(default: label,value)

When generating hints for input elements that do not have an explicit caption, this specifies the methods used to generate a textual hint. The options are attempted in the order they are given, and the first successful value is used.

The hint is the value displayed in a text input, or the selected option for a drop-down.
The value of an explicit label for the input; this will not match most manually added labels that are found on sites.
The name of the input will be used; although the name is not designed for user consumption, it is frequently very similar to the label.
'hintkeys' 'hk'

string(default: 0123456789)

The keys used to label and select hints. With its default value, each hint has a unique number which can be typed to select it, while all other characters are used to filter hints based on their text. With a value such as asdfg;lkjh, each hint is ‘numbered’ based on the characters of the home row.

'hintmatching' 'hm'

stringlist(default: contains)

Change the hint matching algorithm used in Hints mode.

Possible values:

The typed characters are split on whitespace, and these character groups have to match anywhere inside the text of the link.
The typed characters are matched with the beginning of the first word (see 'wordseparators') in the link as long as possible. If no matches occur in the current word, then the matching is continued at the beginning of the next word. The words are worked through in the order they appear in the link. If the typed characters contain spaces, then the characters are split on whitespace. These character groups are then matched with the beginning of the words, beginning at the first one and continuing with the following words in the order they appear in the link.
Behaves like wordstartswith, but non-matching words aren't skipped.
Delegate to the function dactyl.plugins.customHintMatcher.
Certain alphanumeric characters are transliterated into their unaccented equivalents, such that ‘euro’ will match 'æuró', and ‘Ångström’ will match ‘angstrom’.
'hinttags' 'ht'

stringlist(default: a,area,button,iframe,input:not([type=hidden]),select,textarea, [onclick],[onmouseover],[onmousedown],[onmouseup],[oncommand], [tabindex],[role=link],[role=button])

A list of CSS selectors or XPath expressions used to select elements for hinting. Values beginning with the string xpath: are treated as XPath expressions, while any other values are treated as CSS selectors. Can be overridden for individual extended-hints modes with the 'extendedhinttags' option.

'hinttimeout' 'hto'

number(default: 0)

Timeout in milliseconds before automatically following a non-unique hint. The timeout is measured since the last time a key listed in 'hintkeys' was pressed. It has no effect when narrowing hints by typing part of their text. Set to 0 (the default) to only follow hints after pressing <CR> or when the hint is unique.

'history' 'hi'

number(default: 500)

Maximum number of Ex commands and find patterns to store in the command-line history.

'hlfind' 'hlf'

boolean(default: on)

Highlight previous find pattern matches.

'incfind' 'if'

boolean(default: on)

Show the first match for a find pattern as it is typed.

'insertmode' 'im'

boolean(default: on)

Use Insert mode as the default for text areas. This is useful if you want to use the known Firefox interface for editing text areas. Input fields default to this behavior irrespective of this option's setting.

Text Edit mode can be entered with I_<C-t> from Insert mode.

'jsdebugger' 'jsd'

boolean(default: off)

Use the JavaScript debugger service for JavaScript completion.


stringmap(default: p:'p,table,ul,ol,blockquote',h:'h1,h2,h3,h4,h5,h6')

XPath or CSS selector strings of jumpable elements for extended hint modes.

'loadplugins' 'lpl'

regexplist(default: '\.(js|penta)$')

A regular expression list that defines which plugins are loaded at startup or via :loadplugins. The first item to match is the one that takes effect. If no items match, the file is not loaded. Setting this to a blank value effectively disables plugin loading.

For example, to prepend to the default value of this option to load all plugins except for foobar-plugin, you could use:

:set loadplugins^=!foobar-plugin

Alternatively, you can specify which plugins to load and which to omit in your pentadactylrc using something like the following:

:set loadplugins=!foo|bar,\.(js|penta)$

That will load all plugins but foo and bar.

Note that in the first expression of the latter example you don't need parentheses, as the ! negates the whole of the following expression (cf. regexplist).

See also :runtime.

'mapleader' 'ml'

string(default: \)

Defines the replacement keys for the <Leader> pseudo-key.


number(default: 20)

Maximum number of items to display at once in a listing.

'messages' 'msgs'

number(default: 100)

Maximum number of messages to store in the message history.


boolean(default: on)

Pause the message list window when more than one screen of listings is displayed.


stringlist(default: (empty))

Defines which Ex commands open pages in new tabs rather than the current tab by default. This may be overridden with the :tab command, and is usually inverted by affixing a ! to the command in question.

Possible values:

All commands
:addo[ns] command
:downl[oads] command
:exto[ptions] command
:h[elp] command
:javascript! or :js! command
:pref[erences]! or :prefs! command

regexplist(default: '\bnext\b',^>$,'^(>>|»)$','^(>|»)','(>|»)$','\bmore\b')

Patterns to use when guessing the next page in a document sequence after pressing the ]] key. Each pattern is successively tested against each link in the page (as defined by 'hinttags', starting with the last), and the first link to match is followed.


boolean(default: on)

Enables or disables ‘offline’ mode, where network access is disabled and all web pages are loaded entirely from cache.

'pageinfo' 'pa'

charlist(default: gesfm)

Info shown in the :pageinfo output.

Items available by default:

General info
Search Engines
Meta tags
Security information

The order of the options defines the order in which they appear in the result.

'passkeys' 'pk'

sitemap(default: (empty))

Pass certain keys through directly for the given URLs. For any page with a URL matching a given regexp, all key events for keys listed in that regexp's value are passed through directly to Firefox, and are not processed by Pentadactyl in any way. Key names are separated by commas, where the first key name is treated as a list of individual keys and each subsequent key is treated as a key chain. Individual key entries always apply to all modes. Key chains apply only to non-input modes unless they begin with a key requiring a modifier other than shift.

:set passkeys+=mail.google.com:jk<CR>,gi

More subtle and complex pass through can be achieved using groups and mode-specific mappings utilizing the <Pass> pseudo-key.

'passunknown' 'pu'

stringlist(default: caret,output_multiline,!normal,base)

Pass unknown keys through to Firefox in these modes. The first element matching a currently active mode is the one that takes effect. Modes may be negated by prefixing them with a !.

'popups' 'pps'

stringlist(default: tab)

Defines where to show requested pop-up windows. Applies only to links which request to open in a new window. The behavior of middle-, shift-, or control- clicking a link is unaffected by this option.

Possible values are:

Open pop-ups in a new tab
Open pop-ups in a new window
Open resized pop-ups in a new window

If neither tab nor window is provided, all pop-ups open in the current tab. tab and window are mutually exclusive, and the last one listed is effective.

Note: This option does not alter the Firefox pop-up blocker behavior in any way.


regexplist(default: '\bprev|previous\b',^<$,'^(<<|«)$','^(<|«)','(<|«)$')

Patterns to use when guessing the previous page in a document sequence after pressing the [[ key. Each pattern is successively tested against each link in the page (as defined by 'hinttags', starting with the last), and the first link to match is followed.


boolean(default: off)

Set the private browsing option. In private browsing mode history, cache files, cookies, form data, passwords, download list entries, local and URL marks, command-line history and macros are available only for the duration of the private browsing session and deleted when returning to normal browsing mode. See also privacy.

'runtimepath' 'rtp'

stringlist(default: $PENTADACTYL_RUNTIME or Unix, Mac: ~/.pentadactyl Windows: ~/pentadactyl)

List of directories searched for runtime files:


:set runtimepath=~/mypentadactyl,~/.pentadactyl

This will search for plugins in both ~/mypentadactyl/plugins and ~/.pentadactyl/plugins

On startup, if the environment variable $PENTADACTYL_RUNTIME does not exist, Pentadactyl will set it to match this value.

'sanitizeitems' 'si'

stringlist(default: all)

The default list of private items to sanitize. See :sanitize for a list and explanation of possible values.

'sanitizeshutdown' 'ss'

stringlist(default: (empty))

The items to sanitize automatically at shutdown.

'sanitizetimespan' 'sts'

string(default: all)

The default sanitizer time span. Only items created within this timespan are deleted. The value must be of the one of:

The current session
Past {n} Minutes
Past {n} Hours
Past {n} Days
Past {n} Weeks
'scroll' 'scr'

number(default: 0)

Number of lines to scroll with <C-u> and <C-d> commands. The number of lines scrolled defaults to half the window size. When a [count] is specified to the <C-u> or <C-d> commands, that value is used instead. When the value is 0, it defaults to half the window height.

'shell' 'sh'

string(default: $SHELL or sh, Windows: cmd.exe)

Shell to use for executing :! and :run commands.

'shellcmdflag' 'shcf'

string(default: -c, Windows: /c)

Flag passed to shell when executing :! and :run commands.

'showmode' 'smd'

stringlist(default: caret,output_multiline,!normal,base)

Show the current mode in the command line if it or any of its parent modes is included in the list. Modes may be negated by prefixing them with a !.

'showstatuslinks' 'ssli'

string(default: status)

When the mouse hovers over a link, or a link is otherwise focused, show its destination in the status bar.

Possible values are:

Don't show link destination
Show the link destination in the status line
Show the link destination in the command line
'showtabline' 'stal'

string(default: always)

Define when the tab bar is visible.

Always show the tab bar
Show the tab bar when there are multiple tabs
Never show the tab bar
'strictfocus' 'sf'

sitemap(default: 'chrome:*':laissez-faire,*:moderate)

Prevent scripts from focusing input elements without user intervention.

Possible values:

Only allow focus changes when explicitly requested by the user
Always allow focus changes
Allow focus changes after user-initiated focus change

stringlist(default: google)

Set the search engines which can be used for completion suggestions when 'complete' contains S.

'timeout' 'tmo'

boolean(default: off)

When this option is set and a key sequence interpretable both as a complete command and as a start of a longer command is typed, execute the shorter command after 'timeoutlen' milliseconds.

'timeoutlen' 'tmol'

number(default: 1000)

Maximum number of milliseconds to wait for a longer key command when a shorter one exists. Only effective when 'timeout' is set.


string(default: Pentadactyl)

Set the application name shown after the current page title in Firefox's title bar.

:set titlestring=Mozilla Firefox
'urlseparator' 'urlsep' 'us'

string(default: \| )

The regular expression used to split URL lists in commands like :open. When set to the empty string, URL lists are never split. With the default value, the following will open three URLs in the current tab and two new background tabs,

:open google Linux | wikipedia Arch Linux | imdb Serenity
'usermode' 'um'

boolean(default: off)

Show current website with minimal styling.

'verbose' 'vbs'

number(default: 1)

Define which info messages are displayed. As the value increases, Pentadactyl will show more messages about its progress. These can be viewed at any time with the :messages command. The highest useful value is 15, being the most verbose mode.

'visualbell' 'vb'

boolean(default: on)

Use visual bell instead of beeping on errors. The visual bell style is controlled by :highlight Bell. See also 'errorbells'.

'wildanchor' 'wia'

regexplist(default: !'/ex/(back|buffer|ext|forward|help|undo)')

Regular expression list defining which completion groups show only matches anchored to the beginning of the result. The first matching expression is the one that applies. If the match is negated, then the current filter may match anywhere in the result. If it is not negated, then the match may only occur at the beginning of the result. If no items match, then a context-dependent default value is used.

'wildcase' 'wic'

regexpmap(default: .?:smart)

Defines how completions are matched with regard to character case. Keys in the regexpmap refer to completion context names (see :contexts) for which the value applies. Possible values are:

Case is significant when capital letters are typed
Case is always significant
Case is never significant
'wildignore' 'wig'

regexplist(default: (empty))

List of path name patterns to ignore when completing files and directories. For example, the following will ignore object files and Vim swap files:

:set wildignore=\.o$,^\..*\.s[a-z]{2}$

Note: Unlike Vim, each pattern is a regular expression rather than a glob.

'wildmode' 'wim'

stringlist(default: list:full)

Defines how command-line completion works. It is a comma-separated list of parts, where each part specifies what to do for each consecutive press of the c_<Tab> key. The last element in the list is used for each succeeding c_<Tab> after it has been reached.

These are the possible values for each part:

Complete only the first match.
Complete the next full match. After the last, the original string is used.
Complete the longest common substring of all completions.
When more than one match, list all matches.
When more than one match, list all matches and complete the first match.
When more than one match, list all matches and complete till the longest common string. When there is only a single match, it is fully completed regardless of the case.

See also 'altwildmode'.

'wildsort' 'wis'

regexplist(default: .*)

A list of regular expressions defining which completion contexts should be sorted. The main purpose of this option is to prevent sorting of certain completion lists that don't perform well under load.

See also :contexts.

'wordseparators' 'wsp'

string(default: [.,!?:;/"^$%&?()[\]{}<>#*+|=~ _-])

A regular expression which defines how words are split for the 'hintmatching' types wordstartswith and firstletters. Words are split on each occurrence of the given pattern.