Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Vim mode for Ace (Github & Cloud9's editor)

branch: semi-colon-and…

This branch is 1 commit ahead and 167 commits behind master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 src
Octocat-spinner-32 test
Octocat-spinner-32 vendor
Octocat-spinner-32 .gitmodules
Octocat-spinner-32 LICENSE
Octocat-spinner-32 appinfo.json
Octocat-spinner-32 index.html


Jim is an Ace plugin that aims to bring the feel of Vim to the editor. The idea is to layer Vim's normal mode on top of Ace, have a visual mode that works harmoniously with regular Ace selections, and just step out of the way when in insert mode. Also, Jim's undo/redo keybindings (u/ctrl-r) should behave consistently with its Vim counterparts while using the same undo stack as Ace so that its Undo/Redo keybindings are left unchanged.

What works so far

  • modes: normal, visual, insert
  • insert switches: i, a, o, O, I, A, and C
  • commands: D, p, P, s, x, X, and u
  • visual mode commands: p and P
  • operators: c, d, and y in normal and visual modes (double operators work as linewise commands in normal mode, too)
  • motions: h, j, k, l, W, E, B, w, e, b, 0, ^, $, G, gg, H, M, L /, ?, n, N, f, F, t, and T (/, ?, n, and N don't work with operators yet)
  • default register (operations yank text in the the register for pasting)
  • u works as it does in Vim (Cmd-z and Cmd-y still work as they do in Ace)

TODO for first "version"

  • >, < operators
  • ;
  • r, R
  • J, gJ
  • *, #
  • ctrl-r
  • . command for non-insert command (inserts are a bit more complicated to implement)
  • fully docco'ed source

Known issues

Take a gander at the issue tracker


git clone git://
cd jim
git submodule update --init

Then just open index.html and you're good to go.

Chrome needs a special command line argument to allow XHRs to files: google-chrome --allow-file-access-from-files

While developing, keep your CoffeeScript compiling in the background:

coffee --watch --output lib/ src/

Open test/test.html to run the tests

Chromeless (experimental)

Jim can be run as a Chromeless app that has (very) basic Open/Save file capabilities. Once you've installed Chromeless just point it at Jim's directory:

~/code/chromless/chromeless ~/code/jim/

Chromeless is very experimental and the file capabilities that Jim has are only kinda tested, so keep any files you're editing in Git. If it eats your file or slaps your grandma, don't say you weren't warned...

Something went wrong with that request. Please try again.