Convert Figma logo to code with AI

ueokande logovim-vixen

Accelerates your web browsing with Vim power!!

2,110
138
2,110
267

Top Related Projects

23,183

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

1,509

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

  1. Install the Vim Vixen add-on from the Firefox Add-ons store.
  2. After installation, you can start using Vim-like commands immediately.
  3. To customize settings, visit about:addons in Firefox, find Vim Vixen, and click on "Preferences".
  4. 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

23,183

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.

1,509

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Vim Vixen

Join the chat room on Gitter for vim-vixen/vim-vixen GitHub Actions


: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