Top Related Projects
The hacker's browser.
A Vim-like interface for Firefox, inspired by Vimperator/Pentadactyl.
Map your keys for web surfing, expand your browser with javascript and keyboard.
Vim bindings for Google Chrome.
Vimperator
wasavi is an extension for Chrome, Firefox, and Opera. wasavi changes a textarea element to virtual vi editor which supports almost all the vi/ex commands.
Quick Overview
Vim Vixen is a Firefox add-on that provides Vim-like key bindings for navigating and controlling the browser. It aims to enhance the browsing experience for users familiar with Vim by allowing them to use keyboard shortcuts and commands similar to those in the Vim text editor.
Pros
- Improves browsing efficiency for Vim users
- Customizable key bindings and settings
- Lightweight and minimal impact on browser performance
- Active development and community support
Cons
- Learning curve for users not familiar with Vim
- Limited compatibility with some websites and web applications
- Occasional conflicts with native Firefox shortcuts
- Only available for Firefox, not for other browsers
Getting Started
- Install the Vim Vixen add-on from the Firefox Add-ons store.
- After installation, you can start using Vim-like commands immediately.
- To customize settings, visit
about:addons
in Firefox, find Vim Vixen, and click on "Preferences". - In the preferences, you can modify key bindings, blacklist sites, and adjust other settings.
Example of a custom keymaps.json
configuration:
{
"scroll_vertically": {
"j": "scrollDown",
"k": "scrollUp"
},
"scroll_pages": {
"<C-f>": "scrollPageDown",
"<C-b>": "scrollPageUp"
},
"tabs": {
"d": "removeTab",
"u": "restoreTab"
}
}
This configuration sets up basic scrolling, page navigation, and tab management shortcuts. Users can modify this file to suit their preferences and workflow.
Competitor Comparisons
The hacker's browser.
Pros of Vimium
- More mature project with a larger user base and longer development history
- Supports multiple browsers (Chrome, Firefox, Edge) out of the box
- Offers a visual mode for selecting and interacting with page elements
Cons of Vimium
- Less customizable than Vim-Vixen in terms of keybindings and settings
- Doesn't provide native support for custom search engines (requires workarounds)
Code Comparison
Vim-Vixen (key mapping configuration):
{
"keymaps": {
"j": { "type": "scroll.vertically", "count": 1 },
"k": { "type": "scroll.vertically", "count": -1 }
}
}
Vimium (key mapping configuration):
map j scrollDown
map k scrollUp
Both extensions aim to bring Vim-like keyboard navigation to web browsers, but they differ in their approach to configuration and customization. Vim-Vixen uses a JSON-based configuration file, allowing for more granular control over key mappings and behaviors. Vimium, on the other hand, uses a simpler, more concise syntax for key mappings.
While Vimium has a larger user base and supports multiple browsers by default, Vim-Vixen offers more flexibility in customization. The choice between the two may depend on the user's preference for simplicity versus customizability, as well as their target browser ecosystem.
A Vim-like interface for Firefox, inspired by Vimperator/Pentadactyl.
Pros of Tridactyl
- More extensive customization options and features
- Supports a wider range of Vim-like commands
- Active development with frequent updates
Cons of Tridactyl
- Steeper learning curve for new users
- Requires additional permissions, which may concern privacy-conscious users
Code Comparison
Vim-Vixen configuration example:
{
"keymaps": {
"j": { "type": "scroll.vertically", "count": 1 },
"k": { "type": "scroll.vertically", "count": -1 }
}
}
Tridactyl configuration example:
" Scrolling
bind j scrollline 1
bind k scrollline -1
" Custom command
command mynewcommand js alert("Hello, World!")
Tridactyl offers more advanced configuration options, including custom commands and more complex key bindings. Vim-Vixen's configuration is simpler but less flexible.
Both extensions aim to provide Vim-like keyboard navigation in the browser, but Tridactyl offers a more comprehensive set of features at the cost of increased complexity. Vim-Vixen may be more suitable for users seeking a lightweight, straightforward Vim-like experience, while Tridactyl caters to power users who want extensive customization and advanced functionality.
Map your keys for web surfing, expand your browser with javascript and keyboard.
Pros of Surfingkeys
- More extensive feature set, including custom JavaScript API for advanced customization
- Supports multiple browsers (Chrome, Firefox, Safari)
- Active development with frequent updates and bug fixes
Cons of Surfingkeys
- Steeper learning curve due to more complex configuration options
- Larger codebase, which may impact performance on slower systems
- Some users report occasional conflicts with certain websites
Code Comparison
Vim-vixen (key mapping):
{
"keymaps": {
"j": { "type": "scroll.vertically", "count": 1 },
"k": { "type": "scroll.vertically", "count": -1 }
}
}
Surfingkeys (key mapping):
mapkey('j', 'Scroll down', function() {
Normal.scroll('down');
});
mapkey('k', 'Scroll up', function() {
Normal.scroll('up');
});
Both extensions aim to provide Vim-like keybindings for web browsing, but Surfingkeys offers more advanced customization options through its JavaScript API. Vim-vixen uses a simpler JSON configuration, which may be easier for beginners to understand and modify. Surfingkeys' approach allows for more complex behaviors and integrations, but requires more programming knowledge to fully utilize its capabilities.
Vim bindings for Google Chrome.
Pros of chromium-vim
- More extensive customization options for advanced users
- Supports a wider range of Vim-like commands and features
- Has a built-in command mode for executing complex operations
Cons of chromium-vim
- Less actively maintained, with fewer recent updates
- May have compatibility issues with newer browser versions
- Steeper learning curve for users new to Vim-style navigation
Code Comparison
vim-vixen:
const actions = {
// Action definitions
SCROLL_VERTICALLY: 'scroll.vertically',
SCROLL_HORIZONALLY: 'scroll.horizonally',
SCROLL_PAGES: 'scroll.pages',
// ...
};
chromium-vim:
var actions = {
scrollDown: function(repeats) {
Scroll.scroll('down', repeats);
},
scrollUp: function(repeats) {
Scroll.scroll('up', repeats);
},
// ...
};
Both extensions implement similar scrolling functionality, but chromium-vim's approach allows for more granular control with the repeats
parameter. vim-vixen's implementation is more declarative, potentially making it easier to maintain and extend.
Vimperator
Pros of Vimperator
- More comprehensive and feature-rich, offering a wider range of Vim-like commands
- Longer development history, resulting in a more mature and stable codebase
- Supports a broader set of Firefox versions, including older releases
Cons of Vimperator
- No longer actively maintained, with the last update in 2017
- Not compatible with Firefox Quantum (version 57+) and newer versions
- Steeper learning curve due to its extensive feature set
Code Comparison
Vim-vixen (JavaScript):
const SEARCH_ENGINES = {
default: 'https://google.com/search?q={}',
google: 'https://google.com/search?q={}',
yahoo: 'https://search.yahoo.com/search?p={}',
bing: 'https://www.bing.com/search?q={}',
};
Vimperator (JavaScript):
liberator.globalVariables.search_engines = {
google: 'https://www.google.com/search?q=%s',
yahoo: 'https://search.yahoo.com/search?p=%s',
bing: 'https://www.bing.com/search?q=%s',
};
Both projects aim to provide Vim-like functionality in Firefox, but Vimperator offers a more comprehensive set of features at the cost of compatibility with newer Firefox versions. Vim-vixen, while less feature-rich, remains actively maintained and supports modern Firefox releases.
wasavi is an extension for Chrome, Firefox, and Opera. wasavi changes a textarea element to virtual vi editor which supports almost all the vi/ex commands.
Pros of wasavi
- Provides a more complete Vim-like editing environment within the browser
- Supports a wider range of Vim commands and features
- Offers a standalone mode for editing text areas outside the browser
Cons of wasavi
- May have a steeper learning curve for users less familiar with Vim
- Potentially more resource-intensive due to its comprehensive feature set
- Less frequently updated compared to vim-vixen
Code Comparison
vim-vixen:
const actions = {
// Action definitions
scroll: (operation) => {
window.scrollBy(operation.x, operation.y);
},
// More actions...
};
wasavi:
function processInput(key) {
if (isCommandMode) {
executeCommand(key);
} else if (isInsertMode) {
insertText(key);
}
// More input processing...
}
The code snippets show that vim-vixen focuses on defining specific actions for browser navigation, while wasavi implements a more comprehensive input processing system to emulate Vim's various modes and commands.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Vim Vixen
:warning: This project is no longer under active maintainenance. Check the new project Vimmatic. See the announcement in more details.
Vim Vixen is a Firefox add-on which allows you to easily navigate the web by keyboard. Since version 57, Firefox has migrated to the WebExtensions API and has dropped support for legacy add-ons. Vim Vixen is a new choice for Vim users since it uses the WebExtensions API.
To get Vim Vixen, install it from Firefox add-ons.
For usage and more detailed information, check out our documentations.
Compatibility
- Firefox 78 ESR
Copyright
Copyright © 2017-2020 by Shin'ya Ueoka
Licence
MIT
Top Related Projects
The hacker's browser.
A Vim-like interface for Firefox, inspired by Vimperator/Pentadactyl.
Map your keys for web surfing, expand your browser with javascript and keyboard.
Vim bindings for Google Chrome.
Vimperator
wasavi is an extension for Chrome, Firefox, and Opera. wasavi changes a textarea element to virtual vi editor which supports almost all the vi/ex commands.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot