Vim Vixen
Vim Vixen is a Firefox add-on which allows you to navigate with the keyboard on the browser. Firefox started to support WebExtensions API and will stop supporting add-ons using legacy APIs from version 57. For this reason, many legacy add-ons do not work on Firefox 57. Vim Vixen is a new choice for Vim users since Vim Vixen uses the WebExtensions API.
Basic usage
Key-maps
The key-maps are configurable in the add-ons preferences by navigating to about:addons
and selecting "Extensions".
The default mappings are as follows:
Console
- :: open console
- o, t, w: open a page in current tab, new tab, or new window
- O, T, W: similar to o, t, w, but that contains current URL
- b: Select tabs by URL or title
- a: add current page to the bookmarks
See console commands section for more detailed description
Tabs
- d: delete tab
- !d: delete pinned tab
- u: reopen close tab
- r: reload current tab
- R: reload current tab without cache
- K or gT: select previous tab
- J or gt: select next tab
- g0: select first tab
- g$: select last tab
- Ctrl+6: open previously selected tab
- zp: pin tab
- zd: duplicate tab
Scrolling
- k: scroll up
- j: scroll down
- h: scroll left
- l: scroll right
- Ctrl+U: scroll up for a half page
- Ctrl+D: scroll down for a half page
- Ctrl+B: scroll up for a whole page
- Ctrl+F: scroll down for a whole page
- gg: scroll to top of a page
- G: scroll to bottom of a page
- 0: scroll to the leftmost part of a page
- $: scroll to the rightmost part of a page
- m: set a mark from current position
- ': jump to position by the mark
Lowercase alphabet mark ([a-z]
) stores position on the current tab. Upper alphabet and numeric mark ([A-Z0-9]
) stores position and tab.
Zoom
- zi: zoom in
- zo: zoom out
- zz: zoom neutral (reset)
Navigation
- f: start following links in the page in the current tab
- F: start following links in the page in new tabs
- H: go back in history
- L: go forward in history
- [[, ]]: find prev or next links and open it
- gu: go to parent directory
- gU: go to root directory
- gi: focus first input
Plugin can be configured to follow links in new tabs in background instead of
switching to a new tab immediately. To do this you need to update config file:
change "background"
property of "follow.start"
action to true:
{
"keymaps": {
"F": { "type": "follow.start", "newTab": true, "background": true },
}
}
Misc
- y: copy URL in current tab
- p: open clipboard's URL in current tab
- P: open clipboard's URL in new tab
- Shift+Esc: enable or disable the add-on in current tab.
- /: start to find a keyword in the page
- n: find next keyword in the page
- N: find prev keyword in the page
- gf: view page source
Console commands
Vim Vixen provides a console for ex
-style commands similar to Vimperator.
Open the console with :. Or start it with initial values using o/O, t/T, or w/W.
:open
command
The :open
command operates two different ways, depending on the parameter.
When the parameter is a URL, that URL is opened in the current tab.
:open http://github.com/ueokande
Otherwise, the current tab will open a search page with the supplied string (defaults to Google).
:open How to contribute to Vim-Vixen
To use a search engine other than the default, specify which search engine to use as the first parameter.
:open yahoo How to contribute to Vim-Vixen
To adjust the search engine default and add/remove search engines, see the search engines section.
:tabopen
command
Open a URL or search keywords by search engine in new tab.
:quit
or :q
command
Close the current tab.
:quitall
or :qa
command
Close all tabs.
:bdelete
command
Close a certain tab.
You can add !
at the end of the command to close tab even if it is pinned:
:bdelete!
:bdeletes
command
Close tabs matches with keywords.
You can add !
at the end of the command to close even pinned tabs:
:bdeletes!
:winopen
command
Open a URL or search keywords by search engine in new window.
:buffer
command
Select tabs by URL or title matched by keywords.
:addbookmark
command
Create a bookmark from the current URL.
:addbookmark My bookmark title
The key map a is a convenient way to create a bookmark from the
current page. That shows :addbookmark
with a title from the current page into
console.
:set
command
:set
command can temporary override properties using console. See
properties section for more detailed description of available
properties.
Properties
Plugin supports configurable properties which can be configured in JSON settings:
{
"properties": {
"complete": "sbh"
}
}
Properties can be temporary overwritten by :set
command in console.
List of available properties you can find below:
smoothscroll
property
Enable/disable smooth scroll.
:set smoothscroll " enable smooth scroll
:set nosmoothscroll " disable smooth scroll
hintchars
property
Set hint characters
:set hintchars=0123456789
complete
property
Set completion items on open
, tabopen
winopen
commands.
The allowed value is character sequence of s
, b
, or h
.
Hit Tab or Shift+Tab to Select an item from the completion list.
Each character presents as following:
s
: search enginesb
: bookmark itemsh
: history items.
:set complete=sbh
Search engines
Vim Vixen supports search by search engines like Google and Yahoo.
You can configure search engines, including the default search engine, in the add-ons preferences.
The URLs specified in "engines"
must contain a {}-placeholder, which will be
replaced with the search keyword parameters of the command.
{
"search": {
"default": "google",
"engines": {
"google": "https://google.com/search?q={}",
"yahoo": "https://search.yahoo.com/search?p={}",
"bing": "https://www.bing.com/search?q={}",
"duckduckgo": "https://duckduckgo.com/?q={}",
"twitter": "https://twitter.com/search?q={}",
"wikipedia": "https://en.wikipedia.org/w/index.php?search={}"
}
}
}
Blacklist
The blacklist allows you to disable the plugin for certain pages by URL patterns.
For instance, when you describe "*.slack.com"
, the plugin is disabled on any Slack rooms.
In addition, you can also specify path patterns, such as "example.com/mail/*"
.
{
"blacklist": [
"*.slack.com",
"example.com/mail/*"
]
}
You can toggle Vim Vixen between disabled and enabled with shift+Esc.
Licence
MIT