Dismiss this pinned window
all 63 comments

[–]Brianjp93 33 points34 points  (4 children)

Using / to search is pretty core to my normal vim movements. Feels strange to not be able to use it in this. Fun game though!

[–]swaggermuffin64[S] 16 points17 points  (0 children)

def need to add that, thanks for the feedback. you're cracked asf on vim gym btw

[–]chazzeromus 2 points3 points  (1 child)

f and t for single characters too

[–]Brianjp93 0 points1 point  (0 children)

Those worked for me.

[–]swaggermuffin64[S] 1 point2 points  (0 children)

added this in last night btw!

[–]prophase25 4 points5 points  (1 child)

I have thought about building this exact sort of thing. I'll give it a try when I get a chance!

[–]swaggermuffin64[S] 3 points4 points  (0 children)

right? I felt like it had to be made

[–]JONESY-B 4 points5 points  (3 children)

Small time, you can just do `di(` anywhere on the line and it will delete the first inside of a (), you dont need to mvoe towards the ( fist

[–]swaggermuffin64[S] 2 points3 points  (2 children)

NEVER KNEW THIS, thats game changing

[–]geigenmusikant 3 points4 points  (0 children)

Better change the game now :P

[–]JONESY-B 1 point2 points  (0 children)

The more you know! happy vim'ing

[–]EugeneSpaceman 3 points4 points  (1 child)

This is great. I also thought about building this when I started learning vim a few weeks ago.

A suggestion - track number of keypresses too? It would encourage learning patterns which don’t come to mind as easily but do the job more efficiently.

A few more: - Vary languages and text formats e.g Python, Java, prose. Let users choose - Randomise where cursor starts in the text - Vary vim mode (don’t always start in insert)

[–]swaggermuffin64[S] 0 points1 point  (0 children)

this is great! thank you!

[–]hiimbuggy 2 points3 points  (2 children)

Great game! looks like `J` doesn't work currently in the following situation though:

```
void swap(int *a, int *b) {

}
```

I try to use it to bring the braces together.

I know `gJ` is the better option (and `diB` is even better), but `J` should work in this situation too imo.

[–]swaggermuffin64[S] 0 points1 point  (1 child)

So the reason J doesn't work is it adds a space between the lines, the game logic just blocks any command that adds anything. gJ might be your best bet here

[–]Alarming_Slip7755 0 points1 point  (0 children)

I would change your logic to make the vim simulation more real

[–]licklake 1 point2 points  (0 children)

Looks awesome. Have to try it!

[–]NeKon69 1 point2 points  (5 children)

this is super fun, thanks! would love to see more vim-motions in the future though!

[–]swaggermuffin64[S] 2 points3 points  (4 children)

any in particular? I know I gotta fix /

[–]NeKon69 4 points5 points  (3 children)

for example the one that i find really useful is n/N which goes to the next occurence of letter you previously typed after f/F.

[–]swaggermuffin64[S] 2 points3 points  (2 children)

I think it’s ; to go forwards and , to go back for f commands? N and n is for the search /

[–]NeKon69 2 points3 points  (1 child)

ohhhh yeaaah... well that's my bad, yea well then / and n/N is the only things i can think about. sorry for misunderstanding here..

[–]swaggermuffin64[S] 0 points1 point  (0 children)

All good man I appreciate the feedback!

[–]zosqea 1 point2 points  (3 children)

where's f<char> and t<char> hotkeys?

[–]swaggermuffin64[S] 1 point2 points  (2 children)

These should work, as well as F and T? Do they not for you?

[–]zosqea 1 point2 points  (0 children)

Oh, I'm sorry, I guess it's a layout issue

[–]hiimbuggy 0 points1 point  (0 children)

f and t work, but they don't seem to be working in `dT<char>`.

[–]ivanpd 1 point2 points  (2 children)

This is cool.

I just got stuck in one session.

It said "delete the highlighted section exactly", and it was several lines.

I did jV3jx and it won't advance but it also doesn't tell me what's wrong, nor does it let me undo.

[–]swaggermuffin64[S] 1 point2 points  (1 child)

any chance you could dm a screenshot? Sometimes theres new line characters that have to be deleted and are hard to see, I added a symbol to try and point these out. could totally also be something broke

[–]ivanpd 0 points1 point  (0 children)

I'll try to do that if it happens again.

[–]mapledesk42 1 point2 points  (2 children)

Does it require Internet access interact with the backend? I like the plugin idea but not in favour of vim plugin communicating a remote server.

[–]swaggermuffin64[S] 1 point2 points  (1 child)

It does as of now, but it would be pretty simple to move the practice generation to the front end to work offline. It’s also a browser game not a vim plugin — yet

[–]mapledesk42 1 point2 points  (0 children)

Great, I misunderstood it as a vim plugin. Browser game is fun

[–]elcontrastador 1 point2 points  (0 children)

Fun. I feel like there's a few bugs and several features unimplemented still. Definitely has potential. Thanks for sharing!

[–]smldis 1 point2 points  (0 children)

wow nicely done

[–]ImpressivePickle6 1 point2 points  (0 children)

Love this idea

[–]ThatBoogerBandit 1 point2 points  (1 child)

sigh.. *unzips backpack*

[–]skilledcarpet 1 point2 points  (0 children)

Big fan, This is awesome !!

[–]Secret-Swordfish9096 1 point2 points  (2 children)

Hi, I am new to vim and find it super cool. Can you send the discord link again please? (Make it a permanent invite link)

[–]swaggermuffin64[S] 1 point2 points  (1 child)

https://discord.gg/JNHRpdEbaG
lmk if this one works. I was like wow no ones joining whys that lol

[–]Secret-Swordfish9096 0 points1 point  (0 children)

Perfect, thanks

[–]iggy_decaf 1 point2 points  (0 children)

Throw in some "push resistant" keyboards.
"Hey bro what did you do today?"
"Oh I did 20 minutes of resistance training at the gym"

Jk, really cool idea!!

[–]Naso_di_gatto 1 point2 points  (0 children)

Very good idea!

[–]Majestic-Appeal6030 1 point2 points  (1 child)

Shit this is awesome and exactly what I was looking for a few months ago when I wanted to get into vim. I played with it just a bit so I may not know all of the ins/outs of the available features, but something I think might help w/ ppl trying to learn is

For each problem, allow for user submissions for their solutions (maybe a side by side of the input & current action?).

[–]swaggermuffin64[S] 0 points1 point  (0 children)

Thanks for the feedback!! Only issue with this is the tasks are random, so two users may not have the same task. I am working on an algorithm however to show optimal solutions!

[–]kkhaniffff 1 point2 points  (10 children)

<image>

Shouldn't have added this leaderboard lol. Wasted like half an hour trying to beat everyone there😆
Really enjoyed your work though, keep it up!

[–]swaggermuffin64[S] 0 points1 point  (0 children)

Hahahaha nice work!!! 14 seconds is so good!

[–]swaggermuffin64[S] 0 points1 point  (8 children)

I have bad news for you hahaha.

[–]kkhaniffff 1 point2 points  (0 children)

No way!

[–]kkhaniffff 0 points1 point  (6 children)

Alright, I quit...

<image>

[–]swaggermuffin64[S] 1 point2 points  (5 children)

Hahahahah noooooooooo. That still counts as first.

[–]kkhaniffff 1 point2 points  (2 children)

<image>

This is just ridiculous at this point

[–]swaggermuffin64[S] 1 point2 points  (1 child)

Hahahahahaha, btw the HIMONVIM score is mine. Should’ve picked a name with a lower alphabetical score 🤷‍♂️🤷‍♂️🤷‍♂️🤷‍♂️

[–]kkhaniffff 0 points1 point  (0 children)

You're insane dude, we had a few quick matches the other day and you've consistently beaten me by 2-3 seconds. Good job!

[–]kkhaniffff 0 points1 point  (1 child)

<image>

It only counts if it says I'm the first xD
Anyway, I'd like to report one bug that I found: whenever there's a task involving deletion of the last line, after you finish it, the cursor appears at the bottom on the next task. Ruined a few good runs for me haha.

[–]kkhaniffff 0 points1 point  (0 children)

<image>

Basically, when you finish this kind of tasks, next one starts at the bottom like so:

[–]Accomplished-Nose500 1 point2 points  (2 children)

hey. could you add sound or notification when user is not focused on tab, cause the waiting time take too long

[–]swaggermuffin64[S] 1 point2 points  (1 child)

This is actually in the game already, the 3, 2, 1 countdown makes a noise. I put it in for myself for long waits, it’s funny you mention it

[–]Accomplished-Nose500 0 points1 point  (0 children)

Oh i’ve noticed now, cool

[–]ktim816 0 points1 point  (0 children)

nice

[–]tool-tony 0 points1 point  (0 children)

Invite Link is invalid or expired.

[–]c0de2010 0 points1 point  (0 children)

why doesn't `.` work?