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:
-
Insert mode is plain Sublime Text 2 editing, with the usual Sublime Text 2 key bindings: vi insert mode key bindings are not emulated.
-
Visual mode is implicit: if there’s a non-empty selection, Vintage operates in visual mode, otherwise not.
-
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.