Merge pull request #30 from ueokande/usage-in-readme

README
jh-changes
Shin'ya Ueoka 7 years ago committed by GitHub
commit b776608f08
  1. 168
      README.md

@ -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