Javascript Vi

Few would dispute that Vi was a great text editor in its day, but no one has done anything to bring it back until now. A company called Internet Connection has developed JSVI, a clone of Vi that was written in javascript and runs inside editable text areas on virtually any browser with javascript support.

It functions identically to Vi, offering ed/ex command support, vi-keys, unicode awareness, and a number of other features available on Vi. You can see a demo of JSVI here. If you prefer to run vi on your own page, download this javascript document. JSVI is open source, and we certainly agree with [Jason Striegel] that this would make a fitting addition to any Unix blog or forum.

emacs sucks.

[via Hackzine]


  1. Unbelievable!!! Maybe Linux on web will be soon released :D

  2. adamziegler says:

    one word: vim

  3. cenotaph says:

    “but no one has done anything to bring it back until now.”

    So, you’ve some how managed to completely miss Elvis (, WinVi (, *and* Vim ( Wow, some vi user you are.

    Although these are more than “just vi”.

  4. 2bithacker says:

    Very cool. Could turn it into a Greasemonkey script, then I could ditch “It’s All Text”, which I currently use to edit textareas in vi.

  5. Yeah, vi clones have been going strong for a while. I’ve been a regular user of vim since the mid 90s.

  6. Disapointed User says:

    Bring it back? It’s never gone anywhere.

    $ which vi

    nvi > vim

    Simon says author is a lame Windows toad.

  7. Magnade says:

    sweet now just need a javascript bookmarklet to
    inject this into any webpage

  8. Arkku says:

    “in its day”? When did vi(m)’s day end? =)

  9. shashank says:

    is there any smart text editor other than this…

  10. How about emacs implemented in JS? That would be sweet.

  11. cloudhackix says:

    ‘s a fine line between “hack” and “pushing JS to it’s limits”, but I have to say this one at least amused me (vim4life

  12. a.p.t. says:

    Seeing as javascript is an interpreted language, rather than a compiled one, I’d be really impressed if this wasn’t open source.

  13. thouters says:

    Real nutcases (like me!) will apreciate the vimperator, an addon for firefox that brings Vi-joy to this browser (I switched from Epiphany to firefox so I can use it!)


    My first question was, how do I click links: well press ‘f’ (or ‘F’ to tab-open) and all links will be highlit and fitted with a number… just type the number!

  14. Kevin says:

    No one has seen it, because Sun owns it. You have to worry about copyright and the like.

  15. dandin1 says:

    Unlike vi, Emacs is its own OS and environnement, good luck trying to implement it in javascript, certainly the lisp interpreter.

    Now excuse me as I c-x c-s c-x c-c. :D

  16. Ali Raheem says:

    @10(a.p.t) it could be obstruficated (god knows how to spell that).

  17. Marc Lucks says:

    Made some small changes to make the colors right on every page and to hide the toolbar:

    — vi_orig.js 2008-05-06 21:31:01.000000000 +0200
    +++ vi.js 2008-07-07 11:08:39.000000000 +0200
    @@ -3643,6 +3643,7 @@ = ‘absolute'; = ‘none';
    + = ‘#000000′;

    backing.tabIndex = -1; = ‘absolute';
    @@ -3665,6 +3666,8 @@ = ‘absolute'; = ‘0px'; = ‘0px';
    + = ‘#000000′;
    + = ‘hidden';
    tools.innerHTML = ”
    + ‘<input tabindex=”-1″ type=”button” value=”B” style=”font-weight:bold;” onClick=”term_command(\':F!b\’);” />’
    + ‘<input tabindex=”-1″ type=”button” value=”I” style=”font-style:italic;” onClick=”term_command(\':F!i\’);” />’
    @@ -3697,6 +3700,9 @@ = ‘default'; = ‘monospace'; = ‘100%';
    + = ‘#ffffff';
    + = ‘#000000′;
    + = ‘left';
    term._formelement = t; = ‘hidden';

    After that i added two filters to my Proxomitron:

    “” => “

  18. James says:

    @#9: Good luck writing the first all-Javascript operating system =-)

  19. safdasf says:

    Linux in javascript:

  20. Uther says:

    its a good start for sure, I think I’ll go ahead and add more ‘vim’ functionality to it… most notably: syntax highlighting and its function and macro capabilities.

    it’d be an interesting task, but I love javascript, very powerful when used properly.

    oh, and an all javascript os wouldn’t really work, as running kernel level calls through an interpreter would run freakin awful… but I have started work on a fully scriptable and interactive javascript shell… started using spidermonkey, but may implement using v8 instead, as a shell would do the same things repeatedly for the most part, v8’s jit-style class compiler would be great for that.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


Get every new post delivered to your Inbox.

Join 96,699 other followers