# Vim Vixen [![Join the chat room on Gitter for vim-vixen/vim-vixen](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/vim-vixen/vim-vixen) [![Build Status](https://travis-ci.org/ueokande/vim-vixen.svg?branch=kaizen)](https://travis-ci.org/ueokande/vim-vixen) [![devDependencies Status](https://david-dm.org/ueokande/vim-vixen/dev-status.svg)](https://david-dm.org/ueokande/vim-vixen?type=dev) 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. 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 #### 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 - !d: delete pinned tab - u: reopen close tab - K, J: select prev or next tab - g0, g$: select first or last tab - Ctrl+6: select previous selected tab - r: reload current tab - R: reload current tab without cache - zp: toggle pin/unpin current tab - zd: duplicate current tab ### 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 #### Misc - zi, zo: zoom-in/zoom-out - zz: Set default zoom level - y: copy URL in current tab - p: open clipbord's URL in current tab - P: open clipbord's URL in new tab - Shift+Esc: enable or disable the add-on in current tab. ### 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, t, or 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](#search-engines) section. #### `: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. #### `:set` command `:set` command can set properties on console. ##### `smoothscroll` property Enable/disable smooth scroll. ``` :set smoothscroll " enable smooth scroll :set nosmoothscroll " disable smooth scroll ``` ##### `hintchars` property Set hint characters ``` :set hintchars=0123456789 ``` ### 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. ```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 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/*"`. ```json { "blacklist": [ "*.slack.com", "example.com/mail/*" ] } ``` You can toggle Vim Vixen between disabled and enabled with `shift + Esc`. ## Licence MIT