Convert Figma logo to code with AI

philc logovimium

The hacker's browser.

22,991
2,467
22,991
1,141

Top Related Projects

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

Vim bindings for Google Chrome.

1,410

Vim keyboard shortcuts for Firefox

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

Embed Neovim in Chrome, Firefox & others.

Quick Overview

Vimium is a browser extension that provides keyboard shortcuts for navigation and control in the style of the Vim text editor. It allows users to browse the web efficiently without using a mouse, offering a wide range of commands for scrolling, clicking links, manipulating tabs, and more.

Pros

  • Increases browsing efficiency by reducing reliance on mouse interactions
  • Highly customizable with user-defined key mappings and search engines
  • Works across multiple browsers (Chrome, Firefox, Edge)
  • Large and active community for support and development

Cons

  • Steep learning curve for users unfamiliar with Vim-style commands
  • May conflict with some websites' built-in keyboard shortcuts
  • Occasional compatibility issues with certain web applications
  • Limited functionality on some secure pages due to browser restrictions

Getting Started

  1. Install Vimium from your browser's extension store (Chrome Web Store, Firefox Add-ons, etc.)
  2. Once installed, you can start using Vimium immediately with default keybindings
  3. Press ? to view a list of available commands
  4. To customize Vimium:
    • Click on the Vimium icon in your browser toolbar
    • Select "Options"
    • Modify key mappings, excluded URLs, and other settings as desired
  5. Basic commands to get started:
    • j / k: Scroll down / up
    • f: Show link hints
    • H / L: Go back / forward in history
    • t: Create new tab
    • x: Close current tab

For more advanced usage and customization, refer to the official documentation on the GitHub repository.

Competitor Comparisons

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

Pros of Surfingkeys

  • More extensive customization options, allowing users to create complex key mappings and scripts
  • Built-in support for multiple search engines and custom search aliases
  • Includes a visual command mode for executing complex actions

Cons of Surfingkeys

  • Steeper learning curve due to its more complex feature set
  • May feel overwhelming for users who prefer a simpler, more streamlined experience
  • Less frequently updated compared to Vimium

Code Comparison

Vimium (key mapping):

map('j', 'scrollDown')
map('k', 'scrollUp')
map('gg', 'scrollToTop')

Surfingkeys (key mapping):

mapkey('j', 'Scroll down', function() {
    Normal.scroll('down');
});
mapkey('k', 'Scroll up', function() {
    Normal.scroll('up');
});
mapkey('gg', 'Scroll to top', function() {
    Normal.scroll('top');
});

Both extensions allow for custom key mappings, but Surfingkeys provides more granular control over the actions associated with each key. This increased flexibility comes at the cost of slightly more complex configuration syntax.

Vim bindings for Google Chrome.

Pros of chromium-vim

  • More customizable with a wider range of commands and options
  • Supports custom CSS for styling the interface
  • Offers advanced features like visual mode and text objects

Cons of chromium-vim

  • Less actively maintained, with fewer recent updates
  • Smaller user base, potentially leading to fewer community contributions and support
  • May have compatibility issues with newer browser versions

Code Comparison

Vimium (command mapping):

mapKey('j', 'scrollDown');
mapKey('k', 'scrollUp');

chromium-vim (command mapping):

map('j', 'scrollDown');
map('k', 'scrollUp');
map('<C-d>', 'scrollPageDown');
map('<C-u>', 'scrollPageUp');

Both projects aim to bring Vim-like keyboard navigation to web browsers, but they differ in their approach and feature set. Vimium focuses on simplicity and broad compatibility, while chromium-vim offers more advanced features and customization options.

Vimium has a larger user base and more active development, which can lead to better stability and support. However, chromium-vim's additional features may appeal to power users who want more control over their browsing experience.

When choosing between the two, consider your needs for customization, the importance of recent updates, and your comfort level with more advanced Vim-like features.

1,410

Vim keyboard shortcuts for Firefox

Pros of VimFx

  • Specifically designed for Firefox, offering better integration with the browser
  • Lighter weight and potentially faster performance
  • More customizable key bindings and settings

Cons of VimFx

  • Limited to Firefox browser only
  • Smaller user base and community compared to Vimium
  • Development has been discontinued, with the last update in 2017

Code Comparison

VimFx:

export default {
  commands: {
    'scroll_down': {
      description: 'Scroll down',
      cmd: (vim) => vim.window.scrollBy(0, vim.config.scrollstep)
    }
  }
}

Vimium:

const scrollFunctions = {
  scrollDown: function() {
    return Scroller.scrollBy(0, Settings.get("scrollStepSize"));
  }
};

Both projects aim to provide Vim-like keyboard shortcuts for browser navigation. Vimium offers cross-browser support (Chrome and Firefox) and is actively maintained, making it a more versatile choice for users across different browsers. VimFx, while discontinued, may still be preferred by some Firefox users for its tighter integration and customization options. The code snippets show similar approaches to implementing scroll functionality, with VimFx using a more modern ES6 syntax.

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

Pros of Tridactyl

  • More extensive customization options and configuration flexibility
  • Better integration with Firefox's native features
  • Supports running external commands and scripts

Cons of Tridactyl

  • Steeper learning curve due to more complex features
  • Limited to Firefox browser only
  • May have occasional compatibility issues with Firefox updates

Code Comparison

Vimium (JavaScript):

const scrollBy = function(x, y) {
  window.scrollBy(x, y);
  handlerStack.bubbleEvent('scroll');
};

Tridactyl (TypeScript):

export function scrollBy(x: number, y: number): void {
    window.scrollBy(x, y)
    tri.excmds.scrollnative("y", y)
}

Both projects implement scrolling functionality, but Tridactyl uses TypeScript and includes additional native scrolling commands. Vimium's implementation is simpler and more straightforward, while Tridactyl's offers more flexibility and integration with browser-specific features.

Vimium is a more lightweight and browser-agnostic option, making it easier to set up and use across different browsers. Tridactyl, on the other hand, provides a more powerful and customizable experience for Firefox users who are willing to invest time in learning its advanced features.

Embed Neovim in Chrome, Firefox & others.

Pros of Firenvim

  • Embeds a full Neovim instance in browser text areas, providing a complete Vim experience
  • Allows use of Vim plugins and custom configurations in the browser
  • Supports real-time synchronization between Neovim and the browser textarea

Cons of Firenvim

  • Requires Neovim to be installed on the user's system
  • More complex setup process compared to Vimium
  • May have compatibility issues with certain websites or browser extensions

Code Comparison

Vimium (JavaScript):

const scrollBy = function(x, y) {
  window.scrollBy(x, y);
  handlerStack.bubbleEvent('scroll');
};

Firenvim (Lua):

local function setup()
  vim.g.firenvim_config = {
    globalSettings = { alt = "all" },
    localSettings = {
      [".*"] = { takeover = "never", priority = 0 }
    }
  }
end

The code snippets demonstrate the different approaches:

  • Vimium focuses on browser-specific JavaScript for navigation
  • Firenvim uses Lua for Neovim configuration and integration

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

Vimium - The Hacker's Browser

Vimium is a browser extension that provides keyboard-based navigation and control of the web in the spirit of the Vim editor.

Installation instructions:

To install from source, see here.

Vimium's Options page can be reached via a link on the help dialog (type ?) or via the button next to Vimium on the extension pages of Chrome and Edge (chrome://extensions), or Firefox (about:addons).

Keyboard Bindings

Modifier keys are specified as <c-x>, <m-x>, and <a-x> for ctrl+x, meta+x, and alt+x respectively. For shift+x and ctrl-shift-x, just type X and <c-X>. See the next section for how to customize these bindings.

Once you have Vimium installed, you can see this list of key bindings at any time by typing ?.

Navigating the current page:

?       show the help dialog for a list of all available keys
h       scroll left
j       scroll down
k       scroll up
l       scroll right
gg      scroll to top of the page
G       scroll to bottom of the page
d       scroll down half a page
u       scroll up half a page
f       open a link in the current tab
F       open a link in a new tab
r       reload
gs      view source
i       enter insert mode -- all commands will be ignored until you hit Esc to exit
yy      copy the current url to the clipboard
yf      copy a link url to the clipboard
gf      cycle forward to the next frame
gF      focus the main/top frame

Navigating to new pages:

o       Open URL, bookmark, or history entry
O       Open URL, bookmark, history entry in a new tab
b       Open bookmark
B       Open bookmark in a new tab

Using find:

/       enter find mode
          -- type your search query and hit enter to search, or Esc to cancel
n       cycle forward to the next find match
N       cycle backward to the previous find match

For advanced usage, see regular expressions on the wiki.

Navigating your history:

H       go back in history
L       go forward in history

Manipulating tabs:

J, gT   go one tab left
K, gt   go one tab right
g0      go to the first tab. Use ng0 to go to n-th tab
g$      go to the last tab
^       visit the previously-visited tab
t       create tab
yt      duplicate current tab
x       close current tab
X       restore closed tab (i.e. unwind the 'x' command)
T       search through your open tabs
W       move current tab to new window
<a-p>   pin/unpin current tab

Using marks:

ma, mA  set local mark "a" (global mark "A")
`a, `A  jump to local mark "a" (global mark "A")
``      jump back to the position before the previous jump
          -- that is, before the previous gg, G, n, N, / or `a

Additional advanced browsing commands:

]], [[  Follow the link labeled 'next' or '>' ('previous' or '<')
          - helpful for browsing paginated sites
<a-f>   open multiple links in a new tab
gi      focus the first (or n-th) text input box on the page. Use <tab> to cycle through options.
gu      go up one level in the URL hierarchy
gU      go up to root of the URL hierarchy
ge      edit the current URL
gE      edit the current URL and open in a new tab
zH      scroll all the way left
zL      scroll all the way right
v       enter visual mode; use p/P to paste-and-go, use y to yank
V       enter visual line mode
R       Hard reload the page (skip the cache)

Vimium supports command repetition so, for example, hitting 5t will open 5 tabs in rapid succession. <Esc> (or <c-[>) will clear any partial commands in the queue and will also exit insert and find modes.

There are some advanced commands which aren't documented here; refer to the help dialog (type ?) for a full list.

Custom Key Mappings

You may remap or unmap any of the default key bindings in the "Custom key mappings" on the options page.

Enter one of the following key mapping commands per line:

  • map key command: Maps a key to a Vimium command. Overrides Chrome's default behavior (if any).
  • unmap key: Unmaps a key and restores Chrome's default behavior (if any).
  • unmapAll: Unmaps all bindings. This is useful if you want to completely wipe Vimium's defaults and start from scratch with your own setup.

Examples:

  • map <c-d> scrollPageDown maps ctrl+d to scrolling the page down. Chrome's default behavior of bringing up a bookmark dialog is suppressed.
  • map r reload maps the r key to reloading the page.
  • unmap <c-d> removes any mapping for ctrl+d and restores Chrome's default behavior.
  • unmap r removes any mapping for the r key.

Available Vimium commands can be found via the "Show available commands" link near the key mapping box on the options page. The command name appears to the right of the description in parenthesis.

You can add comments to key mappings by starting a line with " or #.

The following special keys are available for mapping:

  • <c-*>, <a-*>, <s-*>, <m-*> for ctrl, alt, shift, and meta (command on Mac) respectively with any key. Replace * with the key of choice.
  • <left>, <right>, <up>, <down> for the arrow keys.
  • <f1> through <f12> for the function keys.
  • <space> for the space key.
  • <tab>, <enter>, <delete>, <backspace>, <insert>, <home> and <end> for the corresponding non-printable keys.

Shifts are automatically detected so, for example, <c-&> corresponds to ctrl+shift+7 on an English keyboard.

More documentation

Many of the more advanced or involved features are documented on Vimium's GitHub wiki. Also see the FAQ.

Contributing

See CONTRIBUTING.md for details.

Release Notes

See CHANGELOG for the major changes in each release.

License

Copyright (c) Phil Crosby, Ilya Sukhar. See MIT-LICENSE.txt for details.