Convert Figma logo to code with AI

vimperator logovimperator-labs

Vimperator

1,192
196
1,192
189

Top Related Projects

22,991

The hacker's browser.

A Vim-like interface for Firefox, inspired by Vimperator/Pentadactyl.

Embed Neovim in Chrome, Firefox & others.

Map your keys for web surfing, expand your browser with javascript and keyboard.

Vim bindings for Google Chrome.

Quick Overview

Vimperator is a Firefox add-on that provides a Vim-like interface for browsing the web. It aims to provide a keyboard-centric browsing experience, allowing users to navigate and interact with web pages using only the keyboard.

Pros

  • Keyboard-centric Browsing: Vimperator allows users to control their web browser entirely through keyboard shortcuts, providing a more efficient and streamlined browsing experience.
  • Vim-like Functionality: The add-on brings the familiar Vim-style commands and keybindings to the web browser, making it easier for Vim users to transition to a new environment.
  • Customizability: Vimperator is highly customizable, allowing users to tailor the interface and functionality to their specific needs and preferences.
  • Productivity Boost: The keyboard-driven interface can significantly improve productivity for users who prefer to keep their hands on the keyboard while browsing the web.

Cons

  • Limited Compatibility: Vimperator is primarily designed for the Firefox web browser, and its functionality may not be as seamless or available in other browsers.
  • Learning Curve: Users who are not familiar with Vim or keyboard-centric interfaces may find the initial learning curve for Vimperator to be steep.
  • Potential Conflicts: The extensive customization options and keyboard shortcuts provided by Vimperator may conflict with other browser extensions or system-level keyboard shortcuts.
  • Maintenance Concerns: As a community-driven project, the long-term maintenance and support for Vimperator may be a concern, especially as web browsers continue to evolve.

Getting Started

To get started with Vimperator, follow these steps:

  1. Install the Vimperator add-on in your Firefox browser.

  2. Once installed, you can access the Vimperator interface by pressing the <Ctrl+i> shortcut.

  3. Familiarize yourself with the basic Vimperator commands, such as:

    • j/k: Move down/up
    • h/l: Move left/right
    • f: Follow a link
    • t: Open a new tab
    • d: Close the current tab
    • :help: Access the Vimperator help menu
  4. Customize Vimperator to your liking by modifying the configuration file located at ~/.vimperator/vimperatorrc.

Competitor Comparisons

22,991

The hacker's browser.

Pros of Vimium

  • Cross-browser compatibility (Chrome, Firefox, Edge)
  • Lightweight and less intrusive to browser functionality
  • Regular updates and active community support

Cons of Vimium

  • Less extensive customization options
  • Fewer advanced features compared to Vimperator
  • Limited integration with browser's native UI elements

Code Comparison

Vimperator:

liberator.modules.commands.addUserCommand(["example"],
    "An example command",
    function(args) {
        liberator.echo("Hello, " + args.literalArg);
    },
    { argCount: "1" }
);

Vimium:

vimium.registerCommand({
  name: 'exampleCommand',
  description: 'An example command',
  execute: function(args) {
    console.log("Hello, " + args);
  }
});

Both projects aim to provide Vim-like keyboard shortcuts for web browsers. Vimperator offers more extensive customization and deeper browser integration but is limited to Firefox. Vimium, while less feature-rich, provides a more lightweight solution that works across multiple browsers. The code comparison shows that Vimperator uses a more complex command registration system, while Vimium's approach is simpler and more straightforward.

A Vim-like interface for Firefox, inspired by Vimperator/Pentadactyl.

Pros of Tridactyl

  • Active development and maintenance
  • WebExtensions API compatibility, supporting modern Firefox versions
  • More extensive customization options through .tridactylrc file

Cons of Tridactyl

  • Steeper learning curve for new users
  • Some limitations due to WebExtensions API restrictions

Code Comparison

Tridactyl configuration example:

" Set default search engine
set searchengine duckduckgo
" Custom key mapping
bind J tabprev
bind K tabnext

Vimperator configuration example:

" Set default search engine
set defsearch=duckduckgo
" Custom key mapping
map J gT
map K gt

Both projects aim to provide Vim-like keyboard navigation for web browsers, but Tridactyl is more actively maintained and compatible with recent Firefox versions. Vimperator, while feature-rich, is no longer actively developed due to changes in Firefox's extension system.

Tridactyl offers more extensive customization options through its configuration file, but may have a steeper learning curve. Vimperator had a simpler setup process but lacks compatibility with modern Firefox versions.

The code examples show similar functionality implemented in both extensions, with slight differences in syntax and command structure.

Embed Neovim in Chrome, Firefox & others.

Pros of Firenvim

  • Active development with recent updates and contributions
  • Supports modern Firefox and Chrome browsers
  • Integrates Neovim directly into browser text areas for a more authentic Vim experience

Cons of Firenvim

  • Limited to text area editing, not full browser control like Vimperator
  • Requires Neovim installation and additional setup
  • May have compatibility issues with some websites or browser extensions

Code Comparison

Firenvim configuration example:

vim.g.firenvim_config = {
    globalSettings = { alt = "all" },
    localSettings = {
        [".*"] = {
            cmdline = "neovim",
            content = "text",
            priority = 0,
            selector = "textarea",
            takeover = "always"
        }
    }
}

Vimperator configuration example:

set hintchars=hjklasdfgyuiopqwertnmzxcvb
map <silent> <C-F> :set gui=nonavigation<CR>
map <silent> <C-S-F> :set gui=navigation<CR>

The code examples highlight the different approaches: Firenvim focuses on Neovim integration in text areas, while Vimperator provides broader browser control and customization.

Map your keys for web surfing, expand your browser with javascript and keyboard.

Pros of Surfingkeys

  • Cross-browser compatibility (Chrome, Firefox, Safari)
  • More active development and maintenance
  • Extensive customization options through JavaScript

Cons of Surfingkeys

  • Steeper learning curve for new users
  • Less integrated with browser UI compared to Vimperator

Code Comparison

Surfingkeys:

mapkey('<Ctrl-y>', 'Show me the money', function() {
    Front.showPopup('Show me the money');
});

Vimperator:

:map <C-y> :echo "Show me the money"<CR>

Both extensions allow custom key mappings, but Surfingkeys uses JavaScript for configuration, while Vimperator uses a Vim-like syntax.

Surfingkeys offers more flexibility in terms of function definition and execution, making it easier to integrate with web applications. However, Vimperator's syntax may be more familiar to Vim users.

Overall, Surfingkeys provides a more modern and actively maintained alternative to Vimperator, with broader browser support and extensive customization options. However, it may require more effort to learn and configure, especially for users already comfortable with Vimperator's Vim-like interface.

Vim bindings for Google Chrome.

Pros of chromium-vim

  • Works on Chromium-based browsers, offering broader compatibility
  • Lighter weight and potentially faster performance
  • More frequent updates and active development

Cons of chromium-vim

  • Less comprehensive Vim-like functionality compared to Vimperator
  • May require more manual configuration to achieve similar features
  • Limited integration with browser UI elements

Code Comparison

Vimperator:

commands.add(["zo[om]"],
    "Zoom in/out the web page",
    function (args) {
        if (!args.length)
            content.document.body.style.zoom = "100%";
        else
            content.document.body.style.zoom = args[0] + "%";
    },
    { argCount: "?", completer: function (context) context.completions = [["100%", "Reset zoom"]] }
);

chromium-vim:

Mappings.addUserMap([modes.NORMAL], ["zo"],
    "Zoom page in",
    function() {
        chrome.tabs.getZoom(null, function(zoomFactor) {
            chrome.tabs.setZoom(null, zoomFactor + 0.1);
        });
    }
);

This comparison shows that Vimperator offers more comprehensive command functionality with built-in argument handling and completion, while chromium-vim provides a simpler implementation using Chrome's API for zooming.

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

Vimperator-labs

amo release github release

Make Firefox/Thunderbird look and behave like Vim

To beginners: Welcome to the Vimperator-labs!
This README isn't written usage and help for the add-on itself. Try :help command after installing add-on for details.

End of Life and Alternatives

Vimperator will stop working in up-to-date copies of Firefox with the release of Firefox 57 on November 14th due to a large breaking change in how extensions and add-ons are written (#705).

It's not all doom and gloom, though! Here are your options (#729):

  • Stay with vimperator, but use an older release of Firefox or a Firefox fork

    • Basilisk, Pale Moon, and Waterfox Classic are community-maintained forks of Firefox that merge security patches and intend to maintain compatibility with XUL/XPCOM add-ons like vimperator. A similar add-on, Pentadactyl, specifically targets Basilisk and Pale Moon and sees more development.
  • Use an add-on compatible with the new webextension API

    • It is not currently possible to match the vimperator feature list in a WebExtension. Some work is being done to rectify this[1][2]
    • cVim (Chrome/Chromium only) - features regex search, commandline with completion, autocmds (via site in the config), custom commands through javascript eval
    • Tridactyl (Firefox only) - aims to eventually match the vimperator experience with working beta versions currently available on AMO
  • Use a less fully-featured add-on compatible with the new WebExtension API

    • These add-ons provide great, configurable, vim-like shortcuts and hints mode
    • By design they do not offer insert or command mode, custom commands, autocmds, vim-style maps and so on
    • Vimium - "The Hacker's Browser. Vimium provides keyboard shortcuts for navigation and control in the spirit of Vim."
    • Saka-key - "Put away your mouse. Saka Key lets you control your browser with keyboard shortcuts."
    • Vim Vixen - "An add-on which allows you to navigate with vim-like bindings."
  • Surrender your other add-ons and use a browser with built-in vim bindings

    • Tabbed
      • Qutebrowser - "A keyboard-driven, vim-like browser based on PyQt5 and Qt."
      • Luakit - "A fast, simple to use micro-browser framework extensible by Lua using the WebKit engine and the GTK+ toolkit."
    • Not tabbed (Use a tabbed window manager or something that supports XEmbed)
      • vimb - "A fast and lightweight vim-like web browser based on the webkit engine and the GTK toolkit."
      • surf - "A simple web browser based on WebKit2/GTK+."
      • uzbl - "A web browser that adheres to the unix philosophy."

Muttator is not affected by these changes.

Description

See also Home page.

Writing efficient user interfaces is the main maxim, here at Vimperator labs. We often follow the Vim way of doing things, but extend its principles when necessary.
Towards this end, we've created the liberator library for Mozilla based applications, to encapsulate as many of these generic principles as possible, and liberate developers from the tedium of reinventing the wheel.

Currently, these applications are using this library:

Vimperator

Vimperator, the flagship project from Vimperator labs, creates a Vim-like Firefox.

Vimperator is a Firefox browser extension with strong inspiration from the Vim text editor, with a mind towards faster and more efficient browsing. It has similar key bindings and you could call it a modal web browser, as key bindings differ according to which mode you are in. For example, it has a special Hint mode, where you can follow links easily with the keyboard only. Also most functionality is available as commands, typing :back will go back within the current page history, just like hitting the back button in the toolbar.

Muttator

Muttator is to Thunderbird what Vimperator is to Firefox. Combines the best aspects of Vim and Mutt.

Muttator is a free add-on for the Thunderbird mail client, which makes it look and behave like the Vim text editor. It has similar key bindings and you could call it a modal mail client, as key bindings differ according to which mode you are in. For example, it the same keys can select the next message while the message list has focus or can scroll down an existing message when the message preview is selected. It also adds commands for accessing most Thunderbird functionality. E.g., :contact -lastname "Vimperator" vimperator@mozdev.org will add Vimperator's mailing list to your address book.

Features (Vimperator)

  • Vim-like keybindings (h, j, k, l, gg, G, 0, $, ZZ, etc.)
  • Ex commands (:quit, :open www.foo.com, ...)
  • Tab completion available for all commands with support for 'longest' matching when set in 'wildmode'
  • Extensions! Yes, you can extend Vimperator's functionality with scripts just like you can extend Firefox with extensions
  • Explore JavaScript objects with :echo window and even context-sensitive tab completion
  • Hit-a-hint like navigation of links (start with f to follow a link)
  • Advanced completion of bookmark and history URLs (searching also in title, not only URL)
  • Vim-like statusline with a wget-like progress bar
  • Minimal GUI (easily hide useless menubar and toolbar with :set gui=)
  • Ability to :source JavaScript files, and to use a ~/.vimperatorrc file
  • Easy quick searches (:open foo will search for "foo" in google, :open ebay terminator will search for "terminator" on ebay) with support for Firefox keyword bookmarks and search engines
  • Count supported for many commands (3<C-o> will go back 3 pages)
  • Beep on errors
  • Marks support (ma to set mark 'a' on a webpage, 'a to go there)
  • QuickMarks support (quickly go to previously marked web pages with go{a-zA-Z0-9})
  • :map and :command support (and feedkeys() for script writers)
  • :time support for profiling
  • Move the text cursor and select text with vim keys and a visual mode
  • External editor support
  • Macros to replay key strokes
  • AutoCommands to execute action on certain events
  • A comprehensive :help, explaining all commands, mappings and options
  • Much more...

Installation (Vimperator)

Note that Vimperator doesn't support multi-process aka Electrolysis (e10s), it's necessary to disable e10s to use the add-on.

  • Download signed add-on from addons.mozilla.org (AMO) 1

    1. Enter Add-ons page.
    2. Click Continue to Download button.
    3. Click Add to Firefox button.
  • Download unsigned 2 add-on from github.com (Github)

    1. Enter Releases page.
    2. Click vimperator-3.N.N.xpi link under Downloads topic.
  • Build own version (and signing) See Build own version topic.

1 If the version on AMO is older than the latest release, you can build your own version and use it until AMO release is updated.

2 Since version 48, installing add-on to Firefox has required signing. Unsigned add-on is for Unbranded Builds. See mozilla wiki.

Build own version

Unsigned (for Unbranded Builds)

See http://www.vimperator.org/developer_info.

Signed (for Firefox 48+)

Instructions for building this can be found in vimperator/private.properties.in. See also MDN document (developer.mozilla.org) for details about signing and distribution.

There are necessary four steps to use own version.

  1. Prepare "AMO API key" and "jpm" if first time
  2. Build unsigned add-on
  3. Submit unsigned add-on to AMO
  4. Install signed add-on to Firefox
  5. Addition: Use Command-line interface (CLI) to build and submit

Prepare AMO API key and jpm

  • AMO API key (require Firefox Account)

  • jpm (require node.js):

    npm install -g jpm
    

Build unsigned add-on

Clone repository and create private.properties:

git clone https://github.com/vimperator/vimperator-labs.git
cd vimperator-labs/vimperator
cp private.properties.in private.properties

Then edit private.properties so that it looks something like:

VERSION       := $(VERSION).$(shell date '+%Y%m%d%H%M%S')
UUID           = vimperator@<uniqueid> # e.g. vimperator@<yourdomain>
AMO_API_KEY    = <your API key> # AKA "Issuer"
AMO_API_SECRET = <your API secret>
UPDATE_URL     =
UPDATE_URL_XPI =

Then run:

make xpi

The unsigned XPI should appear in ../downloads/vimperator-3.N.N.yyyymmddhhmmss.xpi.

Submit unsigned add-on to AMO

Have you ever submitted own version to AMO?How to submit
No, I'd like to register own version. Enter How to Distribute this Version, upload the XPI selecting On your own button.
Yes, I'd like to update own version. Enter Manage My Submissions, upload the XPI from your Vimperator's New Version link.

Then the validation starts. Finally, automatically validation XPI finishes, click Sign add-on button to sign.

Install signed add-on to Firefox

Install it via the link in your AMO developer account (find your Vimperator's Manage Status & Versions). The new UUID makes it a new add-on, so don't forget to disable the old version.

Use CLI to build and submit

After once you signed the add-on, you are able to update the add-on using CLI.

cd vimperator-labs/vimperator
make sign

Contributing

Vimperator is in need of collaborators! Help bring vimperator into the age of e10s!

Please check existing issues for similar issues before opening a new issue. See CONTIRIBUTING.md for details.

License

Vimperator-labs is released under the MIT license, see License.txt.

LinksURL
Home pagehttp://www.vimperator.org/
Add-ons (Vimperator)https://addons.mozilla.org/en-US/firefox/addon/vimperator/
Add-ons (Muttator)https://addons.mozilla.org/en-US/firefox/addon/muttator/
Github repositoryhttps://github.com/vimperator/vimperator-labs/