explaingit

m4xshen/hardtime.nvim

3,768LuaAudience · developerComplexity · 2/5Setup · easy

TLDR

hardtime.nvim is a Neovim plugin that trains you to stop using slow key habits, like tapping arrow keys repeatedly, by blocking them temporarily and suggesting faster Vim movement shortcuts instead.

Mindmap

mindmap
  root((hardtime.nvim))
    What it does
      Blocks repeated keys
      Shows movement hints
      Reports bad habits
    Tech Stack
      Lua
      Neovim
    Use Cases
      Vim habit training
      Motion learning
      Custom key limits
    Audience
      Neovim users
      Developers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Break the habit of using arrow keys in Neovim and learn faster movement commands.

USE CASE 2

Get a report of your worst navigation habits so you know which Vim motions to practice next.

USE CASE 3

Configure custom key-repeat limits and hint messages to match your own learning pace.

Tech stack

LuaNeovim

Getting it running

Difficulty · easy Time to first run · 5min

Requires Neovim 0.10 or later, setup is a one-line call in your Neovim config.

Not specified in the explanation.

In plain English

hardtime.nvim is a plugin for Neovim, a text editor used primarily by programmers. Its purpose is to break habits that experienced Vim users consider inefficient, most notably relying on arrow keys or pressing the same navigation key many times in a row instead of using Vim's more powerful movement commands. The plugin works by watching what keys you press. If you press the same key too many times in quick succession, for example tapping the down arrow repeatedly to scroll through a file, it blocks the key temporarily and shows a hint about a faster way to accomplish the same movement. You can configure how many repeated presses trigger the block and how long the timeout lasts. By default, pressing the same movement key more than three times within a second triggers it. Along with the real-time blocking, the plugin keeps a log of which hints it has shown you most often. You can view this with the :Hardtime report command to see where your navigation habits most often fall back to slow patterns. This gives you a picture of which Vim motions are worth learning next. The recommended workflow described in the README covers a hierarchy of movement techniques: relative line jumps for short vertical distances, scroll shortcuts for longer distances, word-motion keys for horizontal movement, and search-based positioning for jumping to specific characters in a line. Installation requires Neovim version 0.10 or later and a Lua-based plugin manager. The setup is a one-line call in your Neovim configuration file. The plugin is enabled by default once installed and can be toggled with :Hardtime enable, :Hardtime disable, or :Hardtime toggle.

Copy-paste prompts

Prompt 1
I just installed hardtime.nvim in Neovim. What are the fastest alternatives to arrow-key navigation I should learn first to stop triggering the block?
Prompt 2
How do I configure hardtime.nvim to allow 5 repeated key presses before it blocks me instead of the default 3?
Prompt 3
I want to see which Vim movement habits I rely on most, how do I run the Hardtime report command and interpret its output?
Prompt 4
Walk me through a Neovim configuration using lazy.nvim that installs hardtime.nvim and sets it to start disabled so I can toggle it manually.
Open on GitHub → Explain another repo

← m4xshen on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.