๐Ÿ’พ Archived View for text.adventuregameclub.com โ€บ tech โ€บ learning-vim-with-vim-adventures-lvl1.gmi captured on 2023-05-24 at 17:46:35. Gemini links have been rewritten to link to archived content

View Raw

More Information

โฌ…๏ธ Previous capture (2022-03-01)

-=-=-=-=-=-=-

Learning Vim with โš”Vim Adventuresโš”: Level 1

I've gone through the vim tutorial a few times and it's very helpful, but I always need a refresher... is there a better way? Is there a way to learn vim while playing an enjoyable game? Maybe...

โš”Vim Adventuresโš”

I recently stumbled upon vim-adventures.com. I think it was mentioned in a you-tube video or something. Let's jump in and see what it's like.

Vim Adventures: Learning VIM while playing a game

Level 1

โš” OK, it looks like we start out with no instructions, but there's sort of a path and you see h,k,j, and l arranged in a grid

 k
h l
 j

There's also a little guy ๐Ÿ‘จ standing on the path. So I guess we're learning how to navigate; how to move the cursor. OK.

Dvorak!

โŒจ I use the Dvorak layout, which isn't as geeky as it sounds, so don't be too impressed. I never learned to touch-type until I was in my 20s and by then, I was old enough to understand what a steaming pile of crap the qwerty layout is. Somehow I stumbled upon the Dvorak layout and found that it's easier to learn, so that's what I've used ever since.

The real heroes are the guys who learned *qwerty*, realized it was crap ๐Ÿ’ฉ, and then re-trained themselves to learn Dvorak. Bonus points if you type on either one! ๐Ÿ†

Poking around the interface, it seems that you can switch the layout to Dvorak and now the onscreen keyboard shows my layout! Yay!

Right now, it's just showing the navigation keys... Interesting.

Being a Dvorak typist means that key placements are sometimes awkward. H, l, j, and k make sense as directional keys in *qwerty*, but they're pretty random in Dvorak. For that reason, I had a lot of resistance to using them, but eventually, I just got over it and got used to it. What's really tough now, is remembering the diagonal keys in NetHackโš”, but I don't play that much nowadays...

: surprise! ๐Ÿ™€

I saw in the onscreen keyboard that ':' is one of the keys I can use, so I tried it, and just like in vim, it brought up the : command input.

Just to see what would happen, I tried typing `:help` and it popped up a how-to screen... nice, but they really should have lead with that. The game shouldn't make if difficult to figure how to even begin. Vim already does a **great** job of doing that!

Old vim joke: Want to have some fun? Have a newbie start vim then tell him to close it... don't give him any hints.

Nice... the j and k keys scroll the *How to play* screen up and down.

How to play ๐Ÿ•น

OK, so one mystery is solved. You play the blinking cursor. The little person isn't you... I thought it was since I usually don't identify with cursors. I had been trying to get the person to move.

The 'cursor' in the game is more of a shaded square.

This really didn't pop up first thing!? What were they thinking!? This **needs** to be the first thing players see! Did I click out of it by accident?

Gaining keys

Looks like you start out with the navigational keys, but as you bump into people in *textland*, they give you more and maybe teach you a command or two. Interesting.

๐Ÿ‘ There's an explanation of which column you end up in when you move up and down among lines of different column lengths... I've seen this behavior plenty, but never seen an explanation of this! You also get an analogous example of this where if you walk up and down along these little peninsulas that jut into water (where you can't walk), the behavior mirrors vim. Nicely done!

Navigation... โ›ต

So this first level requires a lot of moving around, which is good if you're completely new to vim. It's a little boring for me, so I don't know how long I'll stick with this. You can save your game and return at another time, which is nice.

Right now, I have to walk around finding things so I can unlock stuff; that sort of thing.

๐Ÿฌ Sweet! You use what you learn about moving up and down through lines of different length to get past an obstacle!! On the one hand, I think this is a really great way to gamify this and having to figure this out on your own means I've had to think about this more and I'll remember it better. But on the other hand, I can see people getting impatient ๐Ÿ˜  and just wanting the answers handed to them. I guess those people can always just use the vim tutorial.

๐Ÿ‘ Oh nice! You actually have to use this same technique several times in a row to get past obstacles. Good for memory! ๐Ÿง 

๐Ÿฅ‡ I just got the letter **W**! Now I'm learning about how to move to the next word in a little pop-up lesson. Nicely done, โš”Vim-Adventuresโš”!

๐Ÿ˜Ž Cool! So skipping to the next word allows you to skip over rocks (there are words on the ground in places). So we continue to have to think about these functions in order to figure out our way past obstacles, and we have to continually put what we learn into practice. Hopefully similar obstacles continue to pop up from time to time in later levels in order to reinforce what we're learning.

๐Ÿ˜ƒ I'm very impressed so far. Whoever's behind this really knows what they're doing. I wish the lessons in the online chemistry โš— classes I teach was this well thought out (I don't write them, they come from a big company ๐Ÿ“š).

โš“ One of the great things about the way I'm forced to think about these navigational shortcuts is that it's all too easy to just learn the standard up, down, left, and right keys and then just use them for *everything*. Doing that, is sort of like using a computer mouse ๐Ÿ–ฑ. Yes, it gets you started quickly and it's simple and intuitive, but it's easy to get stuck there; anchored to inefficiency.

Conclusion

I'm going to stop the commentary here. I think I have enough info to make a decision.

I'm giving Vim-Adventures two thumbs up!

๐Ÿ‘๐Ÿ‘

This is a really great way to learn vim. It's not as efficient as the tutorial, but I can see that they've done a lot of thinking on how to transfer vim tasks and concepts into analogous game activities, and how they can get you to really think ๐Ÿง  , remember ๐Ÿ˜ and practice โš’ this stuff. The thinking and practicing are things that you can skip over easily in the official vim tutorial, but this game does a good job of forcing you to do it without making it seem too much like work โš’.

I'll probably play through level 1 and then pick up with Level 2 in a later post when I've had more time to reflect on this.

Final Thoughts

You've probably heard that Microsoft included Solitaire and Minesweeper in Windows so that people would have a fun way to develop skill with a mouse ๐Ÿ–ฑ. For you young'ns out there, there was a time when people didn't grow up with these things, so they were pretty clumsy with them at first.

I've read some people say that โš” NetHack is sort of like the Linux version of Solitaire or Minesweeper; a game that develops your skill with the terminal interface. NetHack uses the same h, l, j, and k navigational keys, so playing NetHack forces you to get used to this.

That's probably still a decent analogy. These games help you develop some skills that transfer over to a lot of applications, but it's a very limited number of skills.

Vim-Adventures is probably a **much better** game to start out with if your new to vim, or new to linux. I know there are Emacs fans out there, but I think vim is about as firmly established as the default text editor for linux as *bash* is as its default shell.

The two things I don't like about it so far are that it isn't free (you have to buy a license to save and to play all the levels), and that it's online (I'd prefer to download a stand-alone game). It looks like it's a one-developer project and the quality so far is outstanding. I haven't payed for software since the 1990s, but I may just be buying a license.

๐Ÿ•น

Update

OK, so I kept playing and got to Level 3. At some point in level 3 is when the free demo ends and you have to buy a license in order to continue on.

 _______________
< $ fortune -os >
 ---------------
   \
    \
        .--.
       |o_o |
       |:_/ |
      //   \ \
     (|     | )
    /'\_   _/`\
    \___)=(___/


โœ๏ธ Last Updated: 2021-06-09

๐Ÿ‘ˆ๏ธ Back to: Tech