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]

Comments

  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 (http://elvis.the-little-red-haired-girl.org/), WinVi (http://www.winvi.de/en/), *and* Vim (http://www.vim.org)? 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
    /usr/bin/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:

    hey
    is there any smart text editor other than this…
    http://hackiteasy.blogspot.com

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

    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!

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

    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:

    “” => “

  18. James says:

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

  19. safdasf says:

    Linux in javascript: http://bellard.org/jslinux/

  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:

WordPress.com Logo

You are commenting using your WordPress.com 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

Follow

Get every new post delivered to your Inbox.

Join 96,357 other followers