wasavi (VI editor for any web page)


wasavi is an extension for Chrome, Opera and Firefox. wasavi transforms TEXTAREA element of any page into a VI editor, so you can edit the text in VI. wasavi supports almost all VI commands and some ex commands.

wasavi is underdevelopment. Any bug report or feature request is welcomed.

Please help wasavi by making a donation!

The following devices are lacking in order to ensure that wasavi works on these platforms:

  • Windows PC (for testing)
  • Macintosh
  • Chromebook

Your support will let wasavi progress. Thanks for your support.

A Quick Walkthrough

Salient Features

How to install

Currently, wasavi is available for following browsers only. Select your browser and click the link. Standard extension installation procedure of your browser will follow. These extensions are hosted at the addons store of their respective browser.

Source code and latest development releases are hosted at Github:

A note for Opera users

Presto based Opera does not support DOM3 Composition Event therefore input via IME is not guaranteed. Presto based Opera does not allow extension to manipulate system clipboard, so the register * is unavailable on Opera.

A note for Chrome users

Chrome has reserved some fundamental shortcuts, such as Ctrl+T, Ctrl+W. These keys cannot be used in wasavi.

Frequently Asked Questions

How to launch wasavi

Focus TEXTAREA and press Ctrl+Enter.

How to quit wasavi

To quit wasavi press ZZ or :q or :wq or any other VI quit command.

How to use wasavi with Vimperator on Firefox

Put wasavi_mediator.js in your Vimperator plugin directory, for example, ~/.vimperator/plugin or %HOME%\vimperator\plugin.

This plugin will control the pass-through mode of Vimperator according to the state of wasavi.

How to use wasavi with Keysnail on Firefox

Put wasavi_mediator.ks.js in your Keysnail plugin directory.

This plugin will control suspend mode of Keysnail according to the state of wasavi.

How to use wasavi as an independent text editor

Install wasavi extension and open the link to wasavi online app. wasavi will start automatically. You can use ex commands :read, :write, :edit or :file to access your Dropbox/Google Drive files. You will have to authorize wasavi via OAuth to access these storages.

About autimatic setting override

The :set commands which you input while wasavi is running are stored to extension's persistent storage, and those are regenerated when you launch wasavi next time.

This setting override mechanism is works each independent URLs (max 30). If you think this is unnecessary, put :set nooverride in you exrc. Then overriding will be skipped.

I Have noticed a bug

Please create an issue on wasavi issue tracker

Tips and Tricks

Commands implemented


c y d > < gq gu gU

Operation Aliases

cc yy dd >> << C Y D gqq guu gUU


- + ^ <home> $ <end> % | , ; _ / ? ' ` ( ) { } [[ ]] <enter> 0 j k h l ^N ^P ^H <down> <up> <left> <right> <space> w W b B e E gg gj gk g^ g$ gi G H M L f F t T n N

Range symbols (Vim text objects)

Scroll commands

^U ^D ^Y ^E ^B ^F <pageup> <pagedown> z<enter> z. zz z-

Edit commands

x X <delete> p P J . u ^R ~ ^L ^G gv m @ q r R a A i I o O & s S v V ZZ

ex commands

abbreviate cd chdir copy delete edit file filesystem global join k map mark marks move options print put pwd quit read redo s & ~ set registers to unabbreviate undo unmap version v write wq xit yank > < @ *

ex commands to specify address are fully supported: absolute line number, relative line number, regal expression, and mark referencing. In addition to this, wasavi also accepts offset.

Input mode commands

Line input mode commands

Bound mode commands

Bound mode is similar to vim's visual mode.

Vim features in wasavi

Fork me on GitHub