Show HN: Hardtime.nvim – break bad habits and master Vim motions
40 comments
·May 18, 2025BrouteMinou
skydhash
I think it's more about getting used to f-F,t-T,A,I, and <semicolon> which can be quicker especially with code. You can also add easymotion or similar plugins for the powered version of those.
mystifyingpoi
That's the point of this plugin - holding "wwwwwwww..." is a bad habit, because it's very likely there is an objectively better way of getting there. Not necessarily "142l" but "/<piece of word><ENTER>" or "f,;;".
qazxcvbnm
A somewhat more “complete” solution that doesn’t give you hints (thus doesn’t rely on the plugin support for all of vim’s vast functionalities), but conditions your instincts to get better: increase the latency of my whole terminal (c.f. https://unix.stackexchange.com/questions/778196/how-to-add-d...) (also see the comment) by running my terminal session on a ssh session into my own machine through a ProxyCommand of the command delay.
lherron
Repo name checks out.
Looks awesome, will not try!
blahgeek
I’ve been using vim for 10+ years. However I honestly don’t see the downside of repeating h or j to move up/down (with the key repeat delay adjusted to a small value). It’s more intuitive than using say 15j, which involves recognizing some number in the screen and then look at the keyboard to type because the upper number row cannot be easily touch typed
kiaofz
I was the exact same until I started using relative line numbers. Then I can just look at a line and see that it's N lines down and jump there immediately. With j or k repeat I'll often over shoot and then have to go back which is kind of annoying.
rybosome
Agreed. I wonder if this is somewhat revealing of the mental processes of the creators.
To me, if my cursor is a few lines away from another line, the easiest way for me to get there is by either using h/j a few times, or looking at the absolute line number and doing that with gg.
Relative jumps are only useful to me in macros. Calculating a relative jump myself would 100% pull me out of the flow state where I just want to go up/down a few rows.
I have no proof of this, but I’d guess that the creator of this pattern didn’t feel the same way.
skydhash
The best tip I got, was to rely more on search instead of other kind of movement. Especially when doing a bunch of editing. Things like easymotion/sneak/avy works best when reading/reviewing.
While I loved multi cursor with sublime. After I moved to Vim, I’ve never needed it. It’s either search~repeat or a macro. Now I’m using emacs, and it’s mostly occur-mode and macro. Grep edit is nice for bigger refactoring.
christophilus
Why’d you switch to emacs, and do you use evil mode?
rgoulter
It's nice to have good tools that are practical for navigating around the text.
For jumping around what's on screen, I think 'easymotion' ("jump anywhere on screen by pressing two characters") & variations are best in terms of how quickly they let you navigate for how easy it is to use.
mathstuf
Also gives me time to plan what I'm going to do once I get there. Or I spot a bug/relevant code snippet along the way.
ryanmcbride
I've pretty much always struggled with this too. I have a numpad that I can touchtype easily but if I'm taking my hands off homerow I may as well use a mouse at that point.
fwip
Huh, I don't find the number row very difficult to touch type. But then again, I do have long fingers.
marcyb5st
I use it and helped me greatly! Thanks a lot for putting this together.
There are few minor things I don't agree as bad habits. For instance, Home/End should be allowed at least when you are in edit mode as they armonize with almost any other text input (not just editors, but also the text inputs/areas on websites).
m4xshen
Thank you! Home/End are actually allowed in Hardtime default config. I'm guessing that you are using AstroNvim since its community default config disables them: https://github.com/AstroNvim/astrocommunity/blob/main/lua/as...
marcyb5st
Correct! Thanks for pointing that out. I never investigated and just rolled with it :)
perrygeo
Despite using vim and neovim for over 20 years, I'm still apparently a caveman when it comes to navigating. I both love and hate that this plugin calls me out for it. The "Hardtime Report" is a great feature, really shows just how pervasive my bad habits are. This could either help me improve - or force me to uninstall it in anger.
avinassh
This looks great! Is it compatible with lazyvim's installations? Because I could not get it working and I suspect it is conflicting with some other plugin
m4xshen
Yeah it is compatible. You can open an issue with more detail if it is still not working.
unshavedyak
This looks awesome! Wonder if something like this could be turned into a generalized optimization engine of sorts? Ie if the problem could be generalized for a set of available movement commands relative to used commands, you could apply it to any underlying platform.
Which is to say, i'd love to see this in Helix. I also toy with custom editors, and observability of available commands is high priority for me, a generalized solution here would be an elegant solve for that. It would also adapt to new features nicely.
nickandbro
Love it! working on similar tool tips for my project:
EDIT: thanks all for the feedback! Sorry there are not more levels, but if you check back in a week am adding a level editor!
foob
I signed up to give it a try, but when I click "Go to Levels" it takes me to https://vimgolf.ai/levels and I get a 404 error.
horsellama
same
but clicking on the hamburger menu it shows a link to “Motions”, which seems to be the first level/demo of the game
nickandbro
Sorry, yeah I am adding more levels, and will fix that! Thanks for testing!
shlomo_z
This looks cool. Is it free?
nickandbro
Thanks, it is, right now! And will have a generous free tier once finished. The only big reason I am making a priced option is for users who want AI tips to be able to have that option. Right now, I do that by having reasoning models like o3 solve the levels and then provide tips or verifying a level can be solved with certain motions.
linnnus
I'm always hesitant about signing up for services. would be great if there was a demo that didn't require creating an account!
SuperManifolds
Been using this plugin for a while, really helped me kick a lot of bad habits. I enjoy how it lets you add custom rules. I really struggled to make myself use I and A, and kept doing ^i $i, so I told it to yell at me when I do that until I learned
lylejantzi3rd
This is awesome. This might be the thing that gets me to stop being a dinosaur and switch to neovim.
darkwater
I'm totally going to install it, thank you very much for developing it!
I always find it funny when people say to not repeat h-l, w-W keys for horizontal movement.
No way I am starting to count how many characters there are in front of my cursor just to have the satisfaction of typing "31-l"...
I am totally going to spam some 2w 3w llll until I reach the desired position.