commit
						b776608f08
					
				
					 1 changed files with 110 additions and 44 deletions
				
			
		
							
								
								
									
										154
									
								
								README.md
									
										
									
									
									
								
							
							
						
						
									
										154
									
								
								README.md
									
										
									
									
									
								
							| 
						 | 
					@ -1,56 +1,122 @@
 | 
				
			||||||
# Vim Vixen
 | 
					# Vim Vixen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
An Firefox add-ons works with WebExtensions, insipired by [Vimperator](https://github.com/vimperator).
 | 
					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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Background
 | 
					## Basic usage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Firefox will stop supporting legacy add-ons
 | 
					### Key-maps
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Firefox will support only add-ons using WebExtensions API since version 57, and
 | 
					The key-maps are configurable in preferences of the add-ons.
 | 
				
			||||||
plugins based on legacy APIs will be unavailable.  Vim Vixen is new solution to
 | 
					The default mapping are shown in the following.
 | 
				
			||||||
create Vim-like Firefox.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Vimimum
 | 
					#### Console
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[Vimium](https://github.com/philc/vimium) is a Chrome extension which able to
 | 
					- `:`: open console
 | 
				
			||||||
navigate pages in Google Chrome/Chromium.  Vimium also started to suppprt on
 | 
					- `o`,`t`,`w`: open a page in current tab, new tab, or new window
 | 
				
			||||||
Firefox by WebExtensions API.
 | 
					- `O`,`T`,`W`: similar to `o`,`t`,`w`, but that contains current URL
 | 
				
			||||||
 | 
					- `b`: Select tabs by URL or title
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## TODO
 | 
					#### Scrolling
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- [ ] open command
 | 
					- `k`,`k`: scroll vertically
 | 
				
			||||||
  - [x] open a link
 | 
					- `h`,`l`: scroll horizontally
 | 
				
			||||||
  - [x] search by keywords with engined
 | 
					- `<C-U>`,`<C-D>`: scroll pages by half of screen
 | 
				
			||||||
  - [x] complete URLs from history
 | 
					- `<C-B>`,`<C-F>`: scroll pages by a screen
 | 
				
			||||||
  - [ ] complete keywords for search
 | 
					- `0`,`$`: scroll a page to leftmost/rightmost
 | 
				
			||||||
- [x] tabs navigation
 | 
					- `gg`,`G`: scroll to top/bottom
 | 
				
			||||||
  - [x] select a tabs by keyboard
 | 
					
 | 
				
			||||||
  - [x] close/reopen a tab
 | 
					#### Tabs
 | 
				
			||||||
  - [x] reload a page
 | 
					- `d`: delete current tab
 | 
				
			||||||
- [ ] buffer control
 | 
					- `u`: reopen close tab
 | 
				
			||||||
  - [x] select a tab by :buffer command
 | 
					- `K`/`J`: select prev/next tab
 | 
				
			||||||
  - [x] buffer completion
 | 
					- `r`: reload current tab
 | 
				
			||||||
  - [ ] list buffers
 | 
					- `R`: reload current tab without cache
 | 
				
			||||||
  - [ ] select buffer last selected
 | 
					
 | 
				
			||||||
- [ ] discover a content
 | 
					### Navigation
 | 
				
			||||||
  - [x] scroll a page by keyboard
 | 
					- `f`: start following links in the page
 | 
				
			||||||
  - [x] zoom-in/zoom-out
 | 
					- `H`: go back in histories
 | 
				
			||||||
  - [ ] find a keyword in the page
 | 
					- `L`: go forward in histories
 | 
				
			||||||
- [ ] navigations
 | 
					- `[[`,`]]`: find  prev/next links and open it
 | 
				
			||||||
  - [ ] yank/paste page
 | 
					- `gu`: go to parent directory
 | 
				
			||||||
  - [x] pagenation
 | 
					- `gU`: go to root directory
 | 
				
			||||||
  - [x] open parent page
 | 
					
 | 
				
			||||||
  - [x] open root page
 | 
					#### Misc
 | 
				
			||||||
- [ ] hints
 | 
					- `zi`,`zo`: zoom-in/zoom-out
 | 
				
			||||||
  - [x] open a link
 | 
					- `zz`: Set default zoom level
 | 
				
			||||||
  - [x] open a link in new tab
 | 
					- `y`: copy URL in current tab
 | 
				
			||||||
  - [x] activate input form
 | 
					
 | 
				
			||||||
- [ ] misc
 | 
					### Console commands
 | 
				
			||||||
  - [x] configurable keymaps
 | 
					
 | 
				
			||||||
  - [x] search engine settings
 | 
					Vim-Vixen provides a console likes Vimperator's one.
 | 
				
			||||||
  - [x] .rc file
 | 
					The console is opened by `:` key or keys to open console with initial value
 | 
				
			||||||
  - [ ] other commands in Ex mode
 | 
					likes `o`, `t`, or `w` keys.
 | 
				
			||||||
- [ ] supporting Google Chrome/Chromium
 | 
					
 | 
				
			||||||
 | 
					#### `: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
 | 
					## Licence
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue