{"id":13591326,"url":"https://github.com/vimperator/vimperator-labs","last_synced_at":"2025-05-16T02:10:21.289Z","repository":{"id":62368611,"uuid":"10753240","full_name":"vimperator/vimperator-labs","owner":"vimperator","description":"Vimperator","archived":false,"fork":false,"pushed_at":"2020-04-23T11:08:41.000Z","size":7775,"stargazers_count":1197,"open_issues_count":188,"forks_count":193,"subscribers_count":86,"default_branch":"master","last_synced_at":"2025-04-12T01:03:48.190Z","etag":null,"topics":["browser","firefox","javascript","keyboard","vim"],"latest_commit_sha":null,"homepage":"http://vimperator.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vimperator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"License.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-06-18T03:46:13.000Z","updated_at":"2025-04-01T08:39:21.000Z","dependencies_parsed_at":"2022-10-31T17:45:17.623Z","dependency_job_id":null,"html_url":"https://github.com/vimperator/vimperator-labs","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimperator%2Fvimperator-labs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimperator%2Fvimperator-labs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimperator%2Fvimperator-labs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vimperator%2Fvimperator-labs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vimperator","download_url":"https://codeload.github.com/vimperator/vimperator-labs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248501862,"owners_count":21114683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser","firefox","javascript","keyboard","vim"],"created_at":"2024-08-01T16:00:56.182Z","updated_at":"2025-04-12T01:03:53.732Z","avatar_url":"https://github.com/vimperator.png","language":"JavaScript","readme":"Vimperator-labs\n===============\n\n[![amo release][amo_version]][amo_release]\n[![github release][github_version]][github_release]\n\n**Make Firefox/Thunderbird look and behave like Vim**\n\n\u003e **To beginners**: Welcome to the Vimperator-labs!  \n\u003e This README isn't written usage and help for the add-on itself.\n\u003e Try `:help` command after installing add-on for details.\n\nEnd of Life and Alternatives\n----------------------------\n\nVimperator 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](https://github.com/vimperator/vimperator-labs/issues/705)).\n\nIt's not all doom and gloom, though! Here are your options ([#729](https://github.com/vimperator/vimperator-labs/issues/729)):\n\n - Stay with vimperator, but use an older release of Firefox or a Firefox fork\n    - [Basilisk](https://www.basilisk-browser.org/),\n      [Pale Moon](https://www.palemoon.org/), and\n      [Waterfox Classic](https://www.waterfox.net/)\n      are community-maintained forks of Firefox that merge security patches and\n      intend to maintain compatibility with XUL/XPCOM add-ons like vimperator.\n      A similar add-on, Pentadactyl, specifically targets\n      [Basilisk](https://addons.basilisk-browser.org/addon/pentadactyl-community/)\n      and [Pale Moon](https://addons.palemoon.org/addon/pentadactyl-community/)\n      and sees more development.\n\n - Use an add-on compatible with the new webextension API\n    - It is not currently possible to match the vimperator feature list in a WebExtension. Some work is being done to rectify this[[1]](https://github.com/cmcaine/keyboard-api)[[2]](https://github.com/Koushien/keyboard-shortcut-api)\n    - [cVim](https://github.com/1995eaton/chromium-vim) (Chrome/Chromium only) - features regex search, commandline with completion, autocmds (via `site` in the config), custom commands through javascript eval\n    - [Tridactyl](https://github.com/cmcaine/tridactyl) (Firefox only) - aims to eventually match the vimperator experience with working beta versions currently available on [AMO](https://addons.mozilla.org/en-US/firefox/addon/tridactyl-vim/)\n\n - Use a less fully-featured add-on compatible with the new WebExtension API\n    - These add-ons provide great, configurable, vim-like shortcuts and hints mode\n    - By design they do not offer insert or command mode, custom commands, autocmds, vim-style maps and so on\n    - [Vimium](https://addons.mozilla.org/en-US/firefox/addon/vimium-ff/) - \"The Hacker's Browser. Vimium provides keyboard shortcuts for navigation and control in the spirit of Vim.\"\n    - [Saka-key](https://key.saka.io/) - \"Put away your mouse. Saka Key lets you control your browser with keyboard shortcuts.\"\n    - [Vim Vixen](https://addons.mozilla.org/en-US/firefox/addon/vim-vixen/) - \"An add-on which allows you to navigate with vim-like bindings.\"\n\n - Surrender your other add-ons and use a browser with built-in vim bindings\n    - Tabbed\n        - [Qutebrowser](https://www.qutebrowser.org/) - \"A keyboard-driven, vim-like browser based on PyQt5 and Qt.\"\n        - [Luakit](https://luakit.github.io/) - \"A fast, simple to use micro-browser framework extensible by Lua using the WebKit engine and the GTK+ toolkit.\"\n    - Not tabbed (Use a tabbed window manager or something that supports XEmbed)\n        - [vimb](https://fanglingsu.github.io/vimb/) - \"A fast and lightweight vim-like web browser based on the webkit engine and the GTK toolkit.\"\n        - [surf](https://surf.suckless.org/) - \"A simple web browser based on WebKit2/GTK+.\"\n        - [uzbl](https://www.uzbl.org/) - \"A web browser that adheres to the unix philosophy.\"\n\nMuttator is not affected by these changes.\n\nDescription\n-----------\n\nSee also [Home page][homepage].\n\nWriting efficient user interfaces is the main maxim, here at Vimperator labs.\nWe often follow the Vim way of doing things, but extend its principles when\nnecessary.  \nTowards this end, we've created the liberator library for Mozilla based\napplications, to encapsulate as many of these generic principles as possible,\nand liberate developers from the tedium of reinventing the wheel.\n\nCurrently, these applications are using this library:\n\n### Vimperator\n\nVimperator, the flagship project from Vimperator labs, creates a Vim-like\nFirefox.\n\nVimperator is a Firefox browser extension with strong inspiration from the Vim\ntext editor, with a mind towards faster and more efficient browsing.  It has\nsimilar key bindings and you could call it a modal web browser, as key bindings\ndiffer according to which mode you are in. For example, it has a special Hint\nmode, where you can follow links easily with the keyboard only.  Also most\nfunctionality is available as commands, typing `:back` will go back within the\ncurrent page history, just like hitting the back button in the toolbar.\n\n### Muttator\n\nMuttator is to Thunderbird what Vimperator is to Firefox. Combines the best\naspects of Vim and Mutt.\n\nMuttator is a free add-on for the Thunderbird mail client, which makes it look\nand behave like the Vim text editor. It has similar key bindings and you could\ncall it a modal mail client, as key bindings differ according to which mode you\nare in. For example, it the same keys can select the next message while the\nmessage list has focus or can scroll down an existing message when the message\npreview is selected. It also adds commands for accessing most Thunderbird\nfunctionality. E.g., `:contact -lastname \"Vimperator\" vimperator@mozdev.org`\nwill add Vimperator's mailing list to your address book.\n\nFeatures (Vimperator)\n---------------------\n\n- Vim-like keybindings (`h`, `j`, `k`, `l`, `gg`, `G`, `0`, `$`, `ZZ`, etc.)\n- Ex commands (`:quit`, `:open www.foo.com`, ...)\n- Tab completion available for all commands with support for 'longest' matching\n  when set in 'wildmode'\n- Extensions! Yes, you can extend Vimperator's functionality with scripts just\n  like you can extend Firefox with extensions\n- Explore JavaScript objects with `:echo window` and even context-sensitive tab\n  completion\n- Hit-a-hint like navigation of links (start with `f` to follow a link)\n- Advanced completion of bookmark and history URLs (searching also in title,\n  not only URL)\n- Vim-like statusline with a wget-like progress bar\n- Minimal GUI (easily hide useless menubar and toolbar with `:set gui=`)\n- Ability to `:source` JavaScript files, and to use a `~/.vimperatorrc` file\n- Easy quick searches (`:open foo` will search for \"foo\" in google, `:open ebay\n  terminator` will search for \"terminator\" on ebay) with support for Firefox\n  keyword bookmarks and search engines\n- Count supported for many commands (`3\u003cC-o\u003e` will go back 3 pages)\n- Beep on errors\n- Marks support (`ma` to set mark 'a' on a webpage, `'a` to go there)\n- QuickMarks support (quickly go to previously marked web pages with\n  `go{a-zA-Z0-9}`)\n- `:map` and `:command` support (and `feedkeys()` for script writers)\n- `:time` support for profiling\n- Move the text cursor and select text with vim keys and a visual mode\n- External editor support\n- Macros to replay key strokes\n- AutoCommands to execute action on certain events\n- A comprehensive `:help`, explaining all commands, mappings and options\n- Much more...\n\nInstallation (Vimperator)\n-------------------------\n\n\u003e Note that Vimperator doesn't support multi-process aka\n\u003e [Electrolysis][wiki_e10s] (e10s), it's necessary to disable e10s to use the\n\u003e add-on.\n\n- Download **signed** add-on from addons.mozilla.org (AMO) \u003csup\u003e1\u003c/sup\u003e\n\n  1. Enter [Add-ons page][amo_release].\n  2. Click `Continue to Download` button.\n  3. Click `Add to Firefox` button.\n\n- Download **unsigned** \u003csup\u003e2\u003c/sup\u003e add-on from github.com (Github)\n\n  1. Enter [Releases page][github_release].\n  2. Click `vimperator-3.N.N.xpi` link under Downloads topic.\n\n- Build own version (and signing)\n  See [Build own version](#build-own-version) topic.\n\n\u003e \u003csup\u003e1\u003c/sup\u003e If the version on [AMO][amo_release] is older than the [latest\n\u003e release][github_release], you can build your own version and use it until AMO\n\u003e release is updated.\n\n\u003e \u003csup\u003e2\u003c/sup\u003e Since version 48, installing add-on to Firefox has required\n\u003e signing. Unsigned add-on is for Unbranded Builds. See [mozilla\n\u003e wiki][wiki_signing].\n\nBuild own version\n-----------------\n\n### Unsigned (for Unbranded Builds)\n\nSee http://www.vimperator.org/developer_info.\n\n### Signed (for Firefox 48+)\n\nInstructions for building this can be found in\nvimperator/private.properties.in. See also [MDN document][mdn_signing]\n(developer.mozilla.org) for details about signing and distribution.\n\nThere are necessary four steps to use own version.\n\n1. Prepare \"AMO API key\" and \"jpm\" if first time\n2. Build unsigned add-on\n3. Submit unsigned add-on to AMO\n4. Install signed add-on to Firefox\n5. Addition: Use Command-line interface (CLI) to build and submit\n\n#### Prepare AMO API key and jpm\n\n- [AMO API key][amo_api_key] (require Firefox Account)\n- [jpm][jpm_repo] (require node.js):\n\n  ```bash\n  npm install -g jpm\n  ```\n\n#### Build unsigned add-on\n\nClone repository and create private.properties:\n\n```bash\ngit clone https://github.com/vimperator/vimperator-labs.git\ncd vimperator-labs/vimperator\ncp private.properties.in private.properties\n```\n\nThen edit private.properties so that it looks something like:\n\n```makefile\nVERSION       := $(VERSION).$(shell date '+%Y%m%d%H%M%S')\nUUID           = vimperator@\u003cuniqueid\u003e # e.g. vimperator@\u003cyourdomain\u003e\nAMO_API_KEY    = \u003cyour API key\u003e # AKA \"Issuer\"\nAMO_API_SECRET = \u003cyour API secret\u003e\nUPDATE_URL     =\nUPDATE_URL_XPI =\n```\n\nThen run:\n\n```bash\nmake xpi\n```\n\nThe unsigned XPI should appear in\n`../downloads/vimperator-3.N.N.yyyymmddhhmmss.xpi`.\n\n#### Submit unsigned add-on to AMO\n\n\u003ctable\u003e\n\u003ctr\u003e\n  \u003cth\u003eHave you ever submitted own version to AMO?\u003c/th\u003e\u003cth\u003eHow to submit\u003c/th\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd\u003eNo, I'd like to register own version.\u003c/td\u003e\n  \u003ctd\u003eEnter \u003ca\n  href=\"https://addons.mozilla.org/en-US/developers/addon/submit/distribution\"\u003e\n  How to Distribute this Version\u003c/a\u003e, upload the XPI selecting \u003ccode\u003eOn your\n  own\u003c/code\u003e button.\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n  \u003ctd\u003eYes, I'd like to update own version.\u003c/td\u003e\n  \u003ctd\u003eEnter \u003ca href=\"https://addons.mozilla.org/en-US/developers/addons\"\u003e\n  Manage My Submissions\u003c/a\u003e, upload the XPI from your Vimperator's \u003ccode\u003eNew\n  Version\u003c/code\u003e link.\n  \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\nThen the validation starts. Finally, automatically validation XPI finishes,\nclick `Sign add-on` button to sign.\n\n#### Install signed add-on to Firefox\n\nInstall it via the link in your AMO developer account (find your Vimperator's\n`Manage Status \u0026 Versions`). The new UUID makes it a new add-on, so don't\nforget to disable the old version.\n\n#### Use CLI to build and submit\n\nAfter once you signed the add-on, you are able to update the add-on using CLI.\n\n```bash\ncd vimperator-labs/vimperator\nmake sign\n```\n\nContributing\n------------\n\n**Vimperator is in need of collaborators! Help bring vimperator into the age\nof e10s!**\n\nPlease check existing issues for similar issues before opening a new issue.\nSee [CONTIRIBUTING.md][contributing] for details.\n\nLicense\n-------\n\nVimperator-labs is released under the MIT license, see [License.txt][license].\n\nLinks                | URL\n---------------------|---------------------------------------------------------\nHome page            | http://www.vimperator.org/\nAdd-ons (Vimperator) | https://addons.mozilla.org/en-US/firefox/addon/vimperator/\nAdd-ons (Muttator)   | https://addons.mozilla.org/en-US/firefox/addon/muttator/\nGithub repository    | https://github.com/vimperator/vimperator-labs/\n\n\u003c!-- References --\u003e\n[amo_version]: https://img.shields.io/amo/v/vimperator.svg\n[amo_release]: https://addons.mozilla.org/en-US/firefox/addon/vimperator/\n[github_version]: https://img.shields.io/github/release/vimperator/vimperator-labs.svg\n[github_release]: https://github.com/vimperator/vimperator-labs/releases/latest\n[homepage]: http://www.vimperator.org/\n[wiki_e10s]: https://wiki.mozilla.org/Electrolysis\n[wiki_signing]: https://wiki.mozilla.org/Add-ons/Extension_Signing\n[mdn_signing]: https://developer.mozilla.org/en-US/Add-ons/Distribution\n[amo_api_key]: https://addons.mozilla.org/en-US/developers/addon/api/key/\n[jpm_repo]: https://github.com/mozilla-jetpack/jpm\n[contributing]: https://github.com/vimperator/vimperator-labs/blob/master/CONTRIBUTING.md\n[license]: https://github.com/vimperator/vimperator-labs/blob/master/License.txt\n\n\u003c!-- vim: set ft=markdown sw=4 ts=4 sts=4 et ai: --\u003e\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvimperator%2Fvimperator-labs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvimperator%2Fvimperator-labs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvimperator%2Fvimperator-labs/lists"}