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]

21 thoughts on “Javascript Vi

  1. 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!)

    check http://vimperator.mozdev.org/

    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!

  2. 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 @@

    suggest.style.position = ‘absolute’;
    suggest.style.display = ‘none’;
    + suggest.style.color = ‘#000000’;

    backing.tabIndex = -1;
    backing.style.position = ‘absolute’;
    @@ -3665,6 +3666,8 @@
    tools.style.position = ‘absolute’;
    tools.style.right = ‘0px’;
    tools.style.bottom = ‘0px’;
    + tools.style.color = ‘#000000’;
    + tools.style.visibility = ‘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 @@
    term.style.cursor = ‘default’;
    term.style.fontFamily = ‘monospace’;
    term.style.fontSize = ‘100%’;
    + term.style.backgroundColor = ‘#ffffff’;
    + term.style.color = ‘#000000’;
    + term.style.textAlign = ‘left’;
    _zmp(term);
    term._formelement = t;
    document.body.style.overflow = ‘hidden’;

    After that i added two filters to my Proxomitron:

    “” => “

  3. 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

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.