Vimium is a Chrome extension that provides keyboard-based navigation and control of the web in the spirit of the Vim editor.
You can install the stable version of Vimium from the Chrome Extensions Gallery.
Please see CONTRIBUTING.md for instructions on how you can install Vimium from source.
The Options page can be reached via a link on the help dialog (type
?) or via the button next to Vimium on
the Chrome Extensions page (
Modifier keys are specified as
<a-x> for ctrl+x, meta+x, and alt+x
respectively. For shift+x and ctrl-shift-x, just type
<c-X>. See the next section for how to customize these bindings.
Once you have Vimium installed, you can see this list of key bindings at any time by typing
Navigating the current page:
? show the help dialog for a list of all available keys h scroll left j scroll down k scroll up l scroll right gg scroll to top of the page G scroll to bottom of the page d scroll down half a page u scroll up half a page f open a link in the current tab F open a link in a new tab r reload gs view source i enter insert mode -- all commands will be ignored until you hit Esc to exit yy copy the current url to the clipboard yf copy a link url to the clipboard gf cycle forward to the next frame gF focus the main/top frame
Navigating to new pages:
o Open URL, bookmark, or history entry O Open URL, bookmark, history entry in a new tab b Open bookmark B Open bookmark in a new tab
/ enter find mode -- type your search query and hit enter to search, or Esc to cancel n cycle forward to the next find match N cycle backward to the previous find match
For advanced usage, see regular expressions on the wiki.
Navigating your history:
H go back in history L go forward in history
J, gT go one tab left K, gt go one tab right g0 go to the first tab g$ go to the last tab ^ visit the previously-visited tab t create tab yt duplicate current tab x close current tab X restore closed tab (i.e. unwind the 'x' command) T search through your open tabs W move current tab to new window <a-p> pin/unpin current tab
ma, mA set local mark "a" (global mark "A") `a, `A jump to local mark "a" (global mark "A") `` jump back to the position before the previous jump -- that is, before the previous gg, G, n, N, / or `a
Additional advanced browsing commands:
]], [[ Follow the link labeled 'next' or '>' ('previous' or '<') - helpful for browsing paginated sites <a-f> open multiple links in a new tab gi focus the first (or n-th) text input box on the page gu go up one level in the URL hierarchy gU go up to root of the URL hierarchy ge edit the current URL gE edit the current URL and open in a new tab zH scroll all the way left zL scroll all the way right v enter visual mode; use p/P to paste-and-go, use y to yank V enter visual line mode
Vimium supports command repetition so, for example, hitting
5t will open 5 tabs in rapid succession.
<c-[>) will clear any partial commands in the queue and will also exit insert and find modes.
There are some advanced commands which aren't documented here; refer to the help dialog (type
?) for a full
You may remap or unmap any of the default key bindings in the "Custom key mappings" on the options page.
Enter one of the following key mapping commands per line:
map key command: Maps a key to a Vimium command. Overrides Chrome's default behavior (if any).
unmap key: Unmaps a key and restores Chrome's default behavior (if any).
unmapAll: Unmaps all bindings. This is useful if you want to completely wipe Vimium's defaults and start from scratch with your own setup.
map <c-d> scrollPageDownmaps ctrl+d to scrolling the page down. Chrome's default behavior of bringing up a bookmark dialog is suppressed.
map r reloadmaps the r key to reloading the page.
unmap <c-d>removes any mapping for ctrl+d and restores Chrome's default behavior.
unmap rremoves any mapping for the r key.
Available Vimium commands can be found via the "Show available commands" link near the key mapping box on the options page. The command name appears to the right of the description in parenthesis.
You can add comments to key mappings by starting a line with
The following special keys are available for mapping:
<m-*>for ctrl, alt, and meta (command on Mac) respectively with any key. Replace
*with the key of choice.
<down>for the arrow keys.
<f12>for the function keys.
<space>for the space key.
<end>for the corresponding non-printable keys (version 1.62 onwards).
Shifts are automatically detected so, for example,
<c-&> corresponds to ctrl+shift+7 on an English keyboard.
Please see CONTRIBUTING.md for details.
There is an experimental port of Vimium on Firefox here. This is very much experimental: most features work, although some bugs and issues remain.
PRs are welcome.
yf, Vimium now strips the leading
%s), then your search terms are not URI encoded.
<Enter>wasn't recognised in the Vomnibar in some circumstances.
reloadcommand now accepts a count prefix; so
999rreloads all tabs (in the current window).
\Icontrol (case sensitivity) for find mode has been removed. Find mode uses smartcase.
createTabto create new normal and incognito windows (examples).
clipboardWritepermission). This is necessary to support copy/paste on Firefox.
map X Marks.activateCreateMode swap map Y Marks.activateGotoMode swap
createTabwith multiple URLs).
<Shift>for hint characters.
map R reload hard, the reload command now asks Chrome to bypass its cache.
<c-[>to a command (in which case it will not be treated as
map R reload hard.
b, etc.). Scrolling and other content-related commands still do not work.
createTabcommand can now open specific URLs (e.g,
map X createTab http://www.bbc.com/news).
map \ passNextKey normal; this reactivates normal mode temporarily, but without any pass keys.
\are now continued on the following line.
Post-release minor fixes:
toggleMuteTab- mute or unmute the current tab (default binding
<a-m>), see also advanced usage.
<backspace>to a Vimium command (e.g.
map <backspace> goBack).
<Space>now rotates the stacking order. If you use filtered hints, you'll need to use a modifier (e.g.
/ican no longer hang Vimium while the page is loading.
<c-a-[>is no longer handled (incorrectly) as
Escape. This also affects
goXis mapped, then
gono longer launches the vomnibar. This only affects three-key (or longer) bindings.
V) from working.
visitPreviousTab- visit the previous tab (by recency) with
^, or the tab before that with
passNextKey- pass the next key to the page. For example, using
map <c-]> passNextKey, you can close Facebook's messenger popups with
3Fopens three new background tabs,
999Fopens many tabs.
Enterto activate a link; this prevents unintentionally triggering Vimium commands with trailing keystrokes.
ggnow accepts a
Wnow accepts a count prefix;
3Wmoves three tabs to a new window.
2j-and-hold now gives a faster scroll than
map d scrollDown count=4.
map abc enterInsertMode.
c-enow scroll in visual mode.
<c-a-[>is no longer treated as escape.
g$now accept count prefixes; so
2g0selects the second tab, and so on.
moveTabRightfor pinned tabs (#1814 and #1815).
Tabon an empty Vomnibar to repeat or edit recent queries (details on the wiki).
/and local mark movements).
Enterto select hints, and hints are ordered by the best match.
vand then vim-like keystrokes to select text on the page. Use
yto yank or
Pto search with your default search engine.. Please provide feedback on Github.
gF) focuses the main frame.
gi) remembers previously-visited inputs.
1.46, 1.47, 1.48 (2014-12-15)
gU, which goes to the root of the current URL.
yt, which duplicates the current tab.
W, which moves the current tab to a new window.
mXto set a mark and
`Xto return to it.
Onow opens Vomnibar results in a new tab.
Bdoes the same for bookmarks only.
ginow launches a new mode that allows the user to tab through the input elements on the page.
bbrings up a bookmark-only Vomnibar.
oto try it.
g$commands, for switching tabs.
Pcommands for URL pasting.
shift-tabto navigate bookmarks dialog.
yfto copy a link hint url to the clipboard.
<c-f>and related are no longer bound by default. You can rebind them on the options page.
1.22, 1.23, 1.24, 1.25 (2011-02-10)
gs) now opens in a new tab.
[[to go forward and backward respectively.
zL) to scroll to the left and right edges of the page.
gi) to focus the first (or n-th) visible text input.
<a-f>) to open up multiple links at a time in new tabs.
guby default) that will go up one level in the URL hierarchy. For example: from https://vimium.github.io/foo/bar to https://vimium.github.io/foo. At the moment,
goUpdoes not support command repetition.
unow restores tabs that were closed by the mouse or with native shortcuts. Tabs are also restored in their prior position.
unmapAllcommand in the key mappings interface to remove all default mappings.
?to see it.
Ctrl+Unow scroll by 1/2 page instead of a fixed amount, to mirror Vim's behavior.
<c-b>are now mapped to scroll a full page up or down respectively.
Khave reversed for tab switching:
Jgoes left and
<c-[>is now equivalent to
Esc, to match the behavior of VIM.
<c-y>are now mapped to scroll down and up respectively.
1.11, 1.12 (2010-01-08)
gTto move to the next & previous tab.
yyto yank (copy) the current tab's url to the clipboard.
Escnow clears the keyQueue. So, for example, hitting
gwill no longer scroll the page.
Copyright (c) Phil Crosby, Ilya Sukhar. See MIT-LICENSE.txt for details.