VIM Modes Transition Diagram
stevelosh.com
stevelosh.com
The great thing about vim is you do not need to know very much to be productive, but every day you learn something new that will make you more productive.
While this is a great reference writing a vim plugin or looking up the behaviour of a specific command, I don't really see it as a learning tool.
However, I'd like to emphasize that there is always a place for tools that are sufficiently complex such that it allows the craftsman wield it proficiently. Past a certain point of simplification, a tool would lack the necessary vocabulary to express things succinctly. Like why Jargon is necessary sometimes.
However, I think Vim is fundamentally a finite state machine. While complex, once you grok the mental model of how it works, everything else comes quite naturally. So fear not.
(commenting from my phone so please excuse weird autocorrect thingies)
A little bit every day and you'll be there in no time.
EDIT: I should say, I took some time to go through every part of the diagram and it's been very helpful for forming a better mental model of Vim. It will look scary to the beginner, but for the moderate to advanced vimmer, this is a very useful learning tool provided you take some time to understand.
The thing about diagrams is that they often encode as much information as you might find in an essay, yet since the information is presented all at once, we have the expectation that we should be able to understand it immediately. It should take 10-20 minutes to understand this diagram.
Don't let this scare you. Learn 10 basic Vim principles and they will serve you 95% of the time. All this extra stuff can be learned incrementally on a case-by-case basis.
If you're still on the edge about Vim, there have been a few good articles on how to begin learning it. What worked for me personally was learning the very basics, how to enter insert mode, how to save and quit, and starting to use Vim as a regular mode-less editor while slowly learning about various useful things you can do in normal mode ("hey, I can delete a word or a line with two key presses"). That way you can begin to extract use out of it immediately while growing increasingly efficient with other modes.
If you're on a Mac, MacVim gives you native OS X shortcuts for things like Copy/Paste, and maps selecting text with the mouse to visual mode which, combined with using insert mode, gives you the same functionality as a regular mode less editor would.
Modern shooters have become just as complex, with the various options available to you. If you can do those, you can use vim.
In short, this is a woefully incomplete diagram of a summary of a subset of the VIM Mode Transitions. Maybe it could be a start for a serious effort down the line.
I've been using Vim as my main editor for over a dozen years. Nevertheless I'm sure there's mountains of stuff I've never learned or understood that is also left out here, but I'm such a rank beginner that I just don't know to mention it.
I admit this one is daunting at first. Keep in mind that it's just an early draft. As I was making notes for myself, it was fun to see it take shape... and it was kind of like solving a sudoku puzzle to get it laid out without overlapping edges. (The fact that it is planar is just a fun coincidence). I have other interesting diagrams that I have scratched out too...
Most of the modes and transitions won't be of interest to everyone. Think of it a roadmap/atlas of places you could go. (Some people may like reading tables... I like to see things laid out visually. Although I am thinking of creating an adjacency matrix that is partitioned/clustered so it can be collapsed into simpler views.) Just like people make simpler maps to tell friends how to get places, I fully expect it will be useful to make simplified illustrate that only shows a subset of this more detailed transition map.
Thanks again for the feedback!
>hardly any of the :commands, and only a very vague box saying "operator" for a large class of actions and motions Vim users are constantly engaging in.
So what, include every single :command? What would even be the point of such a graphical; it would be impractically cluttered. Bear in mind a new user already considers the graphic too complicated: by adding in all the :commands and operators, you just drove away the next tier of beginners. :p
My points are a) it's difficult to make such a graphic representation of vim modes and transitions b) it is (imo) impossible to make such a graphic that is both easy enough for beginners and robust enough for crotchety power users. I think an all-things-to-all-people diagram would be useless to everyone.
Alternative take: "This is an incomplete diagram, but still useful because it covers the common subset of transitions that many people go through." You're almost hostile, and I find that strange since I think this is useful even in an incomplete state.