# jim **Repository Path**: mirrors_threez/jim ## Basic Information - **Project Name**: jim - **Description**: Vim mode for Ace (Github & Cloud9's editor) - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-18 - **Last Updated**: 2026-04-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **Jim** is a JavaScript library that adds a Vim mode to the excellent in-browser editor [Ace](http://ajaxorg.github.com/ace/). Github uses Ace for its editor, so you can use the [Jim bookmarklet](http://misfo.github.com/jim) to Jimmy rig it with Vim-ness. Try it out ---------- [misfo.github.com/jim](http://misfo.github.com/jim) Embed Jim with Ace in your app ------------------------------ ```html ``` Annotated source ---------------- * [ace.coffee](http://misfo.github.com/jim/docs/ace.html) has all the Ace-specific logic for hooking into its keyboard handling, moving the cursor, modifying the document, etc. * [jim.coffee](http://misfo.github.com/jim/docs/jim.html) holds all of Jim's state. * [keymap.coffee](http://misfo.github.com/jim/docs/keymap.html), well, maps keys. * [modes.coffee](http://misfo.github.com/jim/docs/modes.html) defines each of the modes' different key handling behaviors * Commands are defined in [motions.coffee](http://misfo.github.com/jim/docs/motions.html), [operators.coffee](http://misfo.github.com/jim/docs/operators.html), and [commands.coffee](http://misfo.github.com/jim/docs/commands.html) * Odds and ends get thrown in [helpers.coffee](http://misfo.github.com/jim/docs/helpers.html) What works so far ----------------- * [modes](http://misfo.github.com/jim/docs/modes.html): normal, visual (characterwise and linewise), insert, replace * [operators](http://misfo.github.com/jim/docs/operators.html): `c`, `d`, `y`, `>`, and `<` in normal and visual modes (double operators work as linewise commands in normal mode, too) * [motions](http://misfo.github.com/jim/docs/motions.html) (can be used with counts and/or operators, and in visual mode) * `h`, `j`, `k`, `l` * `W`, `E`, `B`, `w`, `e`, `b` * `0`, `^`, `$` * `G`, `gg` * `H`, `M`, `L` * `/`, `?`, `n`, `N`, `*`, `#` * `f`, `F`, `t`, `T` * other [commands](http://misfo.github.com/jim/docs/commands.html) * insert switches: `i`, `a`, `o`, `O`, `I`, `A`, and `C` * commands: `D`, `gJ`, `J`, `p`, `P`, `r`, `s`, `x`, `X`, `u`, and `.` * visual mode commands: `gJ`, `J`, `p` and `P` * default register (operations yank text in the register for pasting) * `u` works as it does in Vim (`Cmd-z` and `Cmd-y` still work as they do in Ace) If you have a feature request [create an issue](https://github.com/misfo/jim/issues/new) Known issues ------------ Take a gander at the [issue tracker](https://github.com/misfo/jim/issues) Hack ---- ``` git clone git://github.com/misfo/jim.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` To keep the development js file built while you develop, you'll need CoffeeScript: ``` npm install coffee-script ``` Then build your files in the background: ``` cake build:ace:watch ``` Open test/test.html to run the tests Thanks! ------- Thanks to all [contributors](https://github.com/misfo/jim/contributors). In other words: thanks [sourrust](https://github.com/sourrust).