Dev Build 2096 is out now. There's a small number of API related changes, and there's an experiment I've been working on over the last few days - Vintage mode.

Vintage mode is vi style key bindings for Sublime Text 2. It's very much an experiment at the moment: I don't know if it'll stay in for the next regular build. I'd like to see if it's something people find useful first.

Vintage is initially disabled, to enable it you'll need to remove it from the (new) ignored_packages global setting. If you do that, you'll be placed into command mode, with vi style commands available to you. As an aside, adding a package to the ignored_packages setting has the same effect as deleting the package itself: feel free to use this to trim away packages you're not interested in.

If you're trying out Vintage, there's a readme file in Packages/Vintage that's worth perusing. In short, keep in mind that Vintage isn't exactly like vi in all respects, some of the major differences are:

Ex commands are not implemented, apart from :w and :e, which work via the command palette.

Vintage itself is implemented entirely as a plugin. I'd be extremely happy to receive any patches, some of the things it needs are:

More motions. While the core ones are implemented, there are many that aren't.

Proper support for ex commands

Plently of other things that I'm sure I've missed

There are no doubt many rough edges at the moment, but at this stage it'd be better to hold off on reporting small bugs and differences with vi. I'm keen to know first if Vintage is something people actually find useful or not.

Finally, I may have missed a few things from the change log this time around - just think of them as bonus features. One of them is that key bindings will now load from 'Default.sublime-keymap' files, which is handy if you have a package with identical key bindings across platforms.

Very interesting! The only problem for me is that Sublime Text 2 does not seem to repeat commands when I hold down a shortcut. So when I hold down "j" to move down, it will only move down one line, while the original VI will move down continuously until I let the key go.

It's applied on the fly, yeah - internally, it works just as if the files were deleted. Plugins will be unloaded, but unless they clean up after themselves (via defining an unload_handler() function), then all their effects won't be undone until the next restart.