# Vim Vixen
Vim Vixen is a Firefox add-on which allows you to navigate with 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.
and Vim Vixen is a new choise for Vim users since Vim Vixen uses WebExtensions API
## Basic usage
### Key-maps
The key-maps are configurable in preferences of the add-ons.
The default mapping are shown in the following.
#### 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
#### Scrolling
- j, k: scroll vertically
- h, l: scroll horizontally
- Ctrl+U, Ctrl+D: scroll pages by half of screen
- Ctrl+B, Ctrl+F: scroll pages by a screen
- 0, $: scroll a page to leftmost/rightmost
- gg, G: scroll to top/bottom
#### Tabs
- d: delete current tab
- u: reopen close tab
- K, J: select prev or next tab
- g0, g$: select first or last tab
- r: reload current tab
- R: reload current tab without cache
### Navigation
- f: start following links in the page
- H: go back in histories
- L: go forward in histories
- [[, ]]: find prev or next links and open it
- gu: go to parent directory
- gU: go to root directory
#### Misc
- zi, zo: zoom-in/zoom-out
- zz: Set default zoom level
- y: copy URL in current tab
- Shift+Esc: enable or disable the add-on in current tab.
### Console commands
Vim-Vixen provides a console like the Vimperator's one.
Open the console with :. Or start it with initial values using
o, t, or w.
#### `:open` command
Open a URL or search keywords by search engine in current tab,
When specified parameter is formatted in URL as following, URL is opened to current tab.
```
:open http://github.com/ueokande
```
If specified parameters are keywords as following, open new tab searched by the
keywords with search engines (default to Google).
```
:open How to contribute to Vim-Vixen
```
You can specify search engines in first parameter.
For the default of search engines, see [search engines](#search-engines) section.
```
:open yahoo How to contribute to Vim-Vixen
```
#### `:tabopen` command
Open a URL or search keywords by search engine in new tab.
#### `: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.
### Search engines
Vim-Vixen support to search by search engines such as google or yahoo.
But the engines are independent on browsers' because of there is a limitation of WebExtensions.
You can configure search engines and default search engine in preferences of the add-ons.
The URLs specified in `"engines"` must contain a {}-placeholder, which will
replaced with keywords in parameters of the command.
```json
{
"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
Blacklist allows 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/*"`.
Disabled plugin can be made re-enabled by Shift+Esc (in default).
```json
{
"blacklist": [
"*.slack.com",
"example.com/mail/*"
]
}
```
## Licence
MIT