Learn Vim motions with an ice-cream van
78 points
17 hours ago
| 9 comments
| thisismodest.com
| HN
greengreengrass
1 hour ago
[-]
Neat, but the (presumably AI-generated) provenance of this means it has regrettable gaps and errors:

On "There and back", it says par is 6 – it's solvable in 4.

On "Rush hour", it describes an invalid motion 'r': "type a number first to repeat a command, e.g. 3j or 4r"

It isn't clear why certain motions are being introduced where they aren't relevant, and therefore aren't going to be immediately practised at point of introduction – "Rush hour" introduces gg to go home, but then doesn't need it.

If I'm going to use something to practice and hone my vim motion, I'm going to need it to be an accurate resource. I closed it at this point.

reply
marcusmichaels
16 minutes ago
[-]
Thanks for the feedback, the par is set based on the level, not the absolute best that can be achieved. I added 4r specifically as an example to get across being able to change multiple characters such as XXXX to YYYY.

Though I’m aware some keyboards might not be fully compatible yet so I’ll work on adding wider support.

reply
sid_talks
34 minutes ago
[-]
Looks pretty neat but it doesn't seem to register the '^' key at all with a German keyboard.
reply
marcusmichaels
16 minutes ago
[-]
Thank you, I’ll work on adding support for more keyboards :)
reply
nehal3m
6 hours ago
[-]
Beautiful project. Vim controls really found their way into my muscle memory through Tridactyl and Vimium, browser extensions that let you drive web pages and the browser itself with Vim keybinds.
reply
rpozarickij
1 hour ago
[-]
There's also Homerow [0] that adds Vimium-like features OS-wide on macOS. It does have some rough edges but overall I've been very happy with it. It usually works well even on apps that don't have proper keyboard navigation implemented and also handles situations with many clickable elements very well (e.g. IntelliJ).

[0] https://www.homerow.app/

reply
rhetenor
2 hours ago
[-]
Pretty cool game, thanks!

Two suggestions that came to my mind while playing: Would be pretty neat to also been able to navigate the town map with vi bindings and it would also be nice to been able to undo the last keystroke with 'u'.

reply
tidbeck
2 hours ago
[-]
I really like this but feels like it does not really work on a Swedish keyboard layout (macOS), cannot input '$'. Tried both Alt+4 (how you actually input '$') which works in vim and Shift+4 (US layout).
reply
marcusmichaels
15 minutes ago
[-]
Thank you, I’m planning to increase keyboard support. There’s also a few little bugs I need to iron out!
reply
JdeBP
14 hours ago
[-]
Yes, hjkl navigation is certainly one of the things that should learn about a vi clone. But are novices well served, in the 2020s, by that being the primary thing that they learn before anything else?

This is not a criticism of this WWW site specifically. The VIM doco has the same priorities, teaching hjkl navigation before arrow keys. (So do nvi2 and NeoVIM.) The problem is that the received wisdom, that arrow keys are some newfangled idea that might not have reached your terminal manufacturer yet, is massively out of date.

Even if one does not teach the arrow keys first, the BS SPC SO (Control+N) DLE (Control+P) set is surely worth teaching early on. One cannot make any reasonable argument that terminals might not have spacebars. (-:

reply
tokamak-teapot
5 hours ago
[-]
The reasons I still use vi-style editing in editors are:

1. Efficiency, so I can be fast

2. Minimal stretching and whole-hand movement, so I don't get painful wrists and so I can be accurate.

Using a keyboard's arrow keys doesn't fit with 2.

reply
alexhans
3 hours ago
[-]
Touch typing essentially. It's such a comfortable way to work. Remapping mode switching to something like jk instead of Esc is vital to stay comfortably in the home row.

I always liked this site to grok some of those vim fundamentals [1] and the touch typing part was going to touch typing exercise webpages and getting pure practice.

- [1] http://learnvimscriptthehardway.stevelosh.com/

reply
zavec
1 hour ago
[-]
I always wonder about the choice of hjkl, because don't people normally rest their hands one row to the left, on jkl;?
reply
sudahtigabulan
1 hour ago
[-]
It has to do with the codes these keys (used to) emit in combination with Ctrl:

  Ctrl/H - Backspace
  Ctrl/J - Line Feed
  Ctrl/K - Upline
  Ctrl/L - Forward Space
Source - the ADM-3A operator's manual, page 3-5:

https://archive.org/download/lear-siegler-adm-3-a/Lear_Siegl...

reply
eska
4 hours ago
[-]
Sorry to be blunt, but if you don’t want to spend effort on touch typing (and therefore avoid arrow keys), learning vim motions is rather pointless and you might as well not bother.
reply
throw-the-towel
1 hour ago
[-]
I'll be blunt to you back: that's not true. Vim motions are useful because you don't have to switch between the keyboard and the mouse, even if you (like me) never bothered with touch typing.
reply
jldugger
4 hours ago
[-]
but what if i learned to type Colemak?
reply
flexagoon
1 hour ago
[-]
I just have a layer on my keyboard that puts arrow keys where hjkl are on qwerty when I hold the tab key. Since tab is right next to my pinky finger on my laptop, it easily became muscle memory, and allows to use home row navigation in all apps, not just the ones that support hjkl.
reply
adrian_b
3 hours ago
[-]
Many years ago, I have switched to touch-typing using the Dvorak layout (on standard QWERTY keyboards), which I find much more comfortable.

Obviously any classic control key assignments, like those of vi or those of emacs, are far from optimal on a non-standard keyboard layout.

The only decent solution is to remap all control keys in your text editor, to whichever positions you prefer.

Any good text editor allows that. Likewise, all programs with a good user interface allow the remapping of the keyboard shortcuts.

reply
eska
4 hours ago
[-]
At that point does your keyboard even still have arrow keys?
reply
johncoltrane
4 hours ago
[-]
hjkl are more of a cult/status thing anyway because they are not _that_ touch-typing-friendly to begin with, and they suck just as much as the cursor keys for moving the cursor around.

Insisting so much on hjkl is silly. No one is using an ADM-3A in 2026, so the official documentation should let users use the more intuitive cursor keys and downgrade hjkl to what they have always been since vi: __ham-fisted alternatives to the cursor keys__.

reply
flexagoon
1 hour ago
[-]
How are they "not that touch-typing-friendly" when they're literally the keys that are always under your fingers when touch typing?
reply
lanycrost
3 hours ago
[-]
Nice job, I will play for sure!

I've learned vim with vim adventures years ago and always wondered for a free game to learn.

reply
marcusmichaels
15 minutes ago
[-]
Vim Adventures was a huge inspiration for this!
reply
anthk
5 hours ago
[-]
Every roguelike player has these bolted in. Just play Nethack/Slashem/DCSS/Cataclysm DDA:Bright Nights...
reply
bitwize
15 hours ago
[-]
Can I go to the place where the Mu-Mu mate and the children still cry "Mine's a 99!"?
reply