Transform HTML textarea element into a VI editor
Transform HTML textarea element into a VI editor

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.

A native TEXTAREA
687474703a2f2f6170707377656574732e6e65742f7761736176692f7761736176695f6e61746976655f74657874617265612e6a7067

Focus the TEXTAREA, and press Ctrl+Enter to launch wasavi
687474703a2f2f6170707377656574732e6e65742f7761736176692f7761736176692e6a7067

Features
  • wasavi supports some ex commands. This is the output of :set all
  • Vim’s incremental search
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:

Tips and Tricks
  • to maximize the wasavi: :set fullscreen or :set fs
  • to restore the wasavi: :set nofullscreen or :set nofs
  • to change a color theme: :set theme=blight or :set theme=charcoal
  • to modify initial settings: open preference wasavi extension (or enter :options on wasavi), and edit “exrc” textbox.
  • abbreviate syntax is
    • :abbreviate displays all the abbreviations currently registered.
    • :abbreviate [clear] clears all the abbreviations.
    • :abbreviate lhs displays the abbreviation corresponding to lhs.
    • :abbreviate lhs rhs registers a abbreviation which expands lhs to rhs.
  • map syntax is
    • :map displays all the mappings currently registered.
    • :map [clear] clears all the mappings.
    • :map lhs rhs registers a rule which translates lhs to rhs. Its translation is recursive.
    • :map [noremap] lhs rhs also registers, but it is non-recursive.
    • :map targets the normal mode mappings. On the other hand, :map! targets the insert mode.
  • j k ^ $ moves cursor by physical row, on the other hand, gj gk g^ g$ moves by wrapped row. To swap the behavior: :set jkdenotative
  • f/F/t/T extension for Japanese: these commands recognizes reading (ro-ma ji expression) of hiragana, katakana, and kanji. For example, fk will place a cursor on ‘漢’.
  • use a online storage as file system:
    • :filesystem status shows all file systems currently available.
    • :filesystem default shows default file system. You can set default file system via:filesystem default dropbox or :filesystem default gdrive.
    • :filesystem reset discards the access token for online storage.
    • You can place the file system name at the head of a file name explicitly: for instance, :read dropbox:/hello.txt.
  • When you read from the register of A to Z, some registers returns special content:
    • B register: user agent string
    • D register: current date time string
    • T register: title string
    • U register: URL string
    • W register: version string of wasavi

Reference

Github

Transform HTML textarea element into a VI editor

Leave a Reply

Your email address will not be published.