Relatedly: Some of us have egos. The rest of us have A/B testing. It is a lot like signing up for a lifetime subscription to Humble Pie Magazine, but it certainly works.
Does anyone know of a similar method to learn vim? It would be a lot easier, faster and more fun if there was some kind of game which would teach you all the keys and combinations.
I really want to make one myself. My idea is to have the terminal screen as a vim-editable 2-D ASCII environment, which you manipulate with vim commands.
The goal can be anything. Say a plane or something going straight through a cave and you have to use vim commands to move the cursor to and clear ASCII obstacles before the plane hits them (and you can't use 'dd', just to make it harder).
Or a game where you have to fill in blank spaces randomly strewn around for some purpose, and also make it time-based. Or any other kind of game you can think of; I think it has a lot of potential for fun + vim-training.
From what the author explains in the presentation, vim violates the tried-and-true video game mechanics of starting the user with only the most basic functionality. To teach vim using the author's method, one could start by removing all but the most basic commands. Then, these missing commands could be introduced to the user one at a time, in a controlled environment where there is a clear task (eg. jump the cursor to a particular point in the text) that can be measured as success or failure.
In the linked presentation, the author draws a comparison to the game Metroid. In the game, the player falls into a deep pit and has to find a way to climb out before being able to continue on. Failure to perform the new skill (accurately timing the character's wall-jumping) is immediately clear because the player will fall back down into the pit. When the user finally times it correctly, he's free from the pit and the brain rewards him with a sense of accomplishment.
Back to vim, if you wanted to create such an environment for learning a new command to move the cursor around, you wouldn't want the user to fall back on basic navigation with h, j, k, and l. You could disable these keys temporarily, or leave them but only reward the user if they accomplish the goal using the fewest key-presses possible.
Once they "win" this "level" you've designed, those new navigation keys should be considered part of their arsenal of skills for solving future problems. Each skill mastery could be further rewarded by filling in parts of a cheat-sheet (like this one: http://www.viemu.com/vi-vim-cheat-sheet.gif). This can be seen in the section where the author talks about Link to the Past and the picture of the player's item inventory. The vim player's goal could be to "unlock" and master these keyboard skills and ultimately fill in the complete chart.
Having read the comments I found it interesting that one of the features is to show you which of the features of Office other people actually use. I've had the same experience with blog posts or hacker news submissions about Vim or Unix tools in general. Simply being informed of their existence is a real benefit, otherwise they'd just sit there in my machine unused. (The hefty guidebook Vi IMproved by Steve Oualline was good too)
This is wonderfully on point for me. The main reason I belong to HN is because I want to create an educational game. Glad to see it here and hope to see other similar stuff in the future.
I think we're going to start seeing alot more ideas from gaming start to creep into applications. I've definitely been noticing a trend of this even recently here on HN. It's going to be interesting to see how these two worlds collide (and what startups form from the debris).