|
|
|
@ -1,56 +1,122 @@ |
|
|
|
|
# Vim Vixen |
|
|
|
|
|
|
|
|
|
An Firefox add-ons works with WebExtensions, insipired by [Vimperator](https://github.com/vimperator). |
|
|
|
|
|
|
|
|
|
## Background |
|
|
|
|
|
|
|
|
|
### Firefox will stop supporting legacy add-ons |
|
|
|
|
|
|
|
|
|
Firefox will support only add-ons using WebExtensions API since version 57, and |
|
|
|
|
plugins based on legacy APIs will be unavailable. Vim Vixen is new solution to |
|
|
|
|
create Vim-like Firefox. |
|
|
|
|
|
|
|
|
|
### Vimimum |
|
|
|
|
|
|
|
|
|
[Vimium](https://github.com/philc/vimium) is a Chrome extension which able to |
|
|
|
|
navigate pages in Google Chrome/Chromium. Vimium also started to suppprt on |
|
|
|
|
Firefox by WebExtensions API. |
|
|
|
|
|
|
|
|
|
## TODO |
|
|
|
|
|
|
|
|
|
- [ ] open command |
|
|
|
|
- [x] open a link |
|
|
|
|
- [x] search by keywords with engined |
|
|
|
|
- [x] complete URLs from history |
|
|
|
|
- [ ] complete keywords for search |
|
|
|
|
- [x] tabs navigation |
|
|
|
|
- [x] select a tabs by keyboard |
|
|
|
|
- [x] close/reopen a tab |
|
|
|
|
- [x] reload a page |
|
|
|
|
- [ ] buffer control |
|
|
|
|
- [x] select a tab by :buffer command |
|
|
|
|
- [x] buffer completion |
|
|
|
|
- [ ] list buffers |
|
|
|
|
- [ ] select buffer last selected |
|
|
|
|
- [ ] discover a content |
|
|
|
|
- [x] scroll a page by keyboard |
|
|
|
|
- [x] zoom-in/zoom-out |
|
|
|
|
- [ ] find a keyword in the page |
|
|
|
|
- [ ] navigations |
|
|
|
|
- [ ] yank/paste page |
|
|
|
|
- [x] pagenation |
|
|
|
|
- [x] open parent page |
|
|
|
|
- [x] open root page |
|
|
|
|
- [ ] hints |
|
|
|
|
- [x] open a link |
|
|
|
|
- [x] open a link in new tab |
|
|
|
|
- [x] activate input form |
|
|
|
|
- [ ] misc |
|
|
|
|
- [x] configurable keymaps |
|
|
|
|
- [x] search engine settings |
|
|
|
|
- [x] .rc file |
|
|
|
|
- [ ] other commands in Ex mode |
|
|
|
|
- [ ] supporting Google Chrome/Chromium |
|
|
|
|
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 |
|
|
|
|
|
|
|
|
|
- `k`,`k`: scroll vertically |
|
|
|
|
- `h`,`l`: scroll horizontally |
|
|
|
|
- `<C-U>`,`<C-D>`: scroll pages by half of screen |
|
|
|
|
- `<C-B>`,`<C-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/next 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/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 |
|
|
|
|
|
|
|
|
|
### Console commands |
|
|
|
|
|
|
|
|
|
Vim-Vixen provides a console likes Vimperator's one. |
|
|
|
|
The console is opened by `:` key or keys to open console with initial value |
|
|
|
|
likes `o`, `t`, or `w` keys. |
|
|
|
|
|
|
|
|
|
#### `: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 |
|
|
|
|
{ |
|
|
|
|
"keymaps": { |
|
|
|
|
"...": "..." |
|
|
|
|
}, |
|
|
|
|
"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={}" |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
## Licence |
|
|
|
|
|
|
|
|
|