#Drill
One small exercise in a lesson: an editor with some text, a target to reach and a prompt naming the technique to use. It's solved when the buffer matches the target, the cursor is in the right spot (if the target marks one) and Vim is settled: back in Normal mode with nothing half-typed.
:next:prev]d[d
#Variant
Every drill comes with several variants: different text that practises the same keys. One is picked at random for each attempt, and some movement drills also shuffle where you start and where you need to go, so you learn the technique rather than one answer.
#Fresh text on retry
:retry, the ↻ retry button, or r while you're outside the editor restarts the drill with a different variant. A second attempt is never a replay of the first, so it tests the skill and not your memory of the answer.
:retryr
#Par
The keystroke count of the drill's reference solution, as in golf. Every key press counts, including <Esc>, <CR> and each letter typed in Insert mode. A Ctrl combo like <C-u> is one keystroke, Shift or Ctrl on its own is none, and commands for the site itself, like :hint, are free. Finishing at or under par earns a ★; going over is still a pass, with room to improve.
#Target
The pane next to the editor showing what the buffer should look like when you're done. When the cursor's final spot counts, a block in the target marks it, and the buffer outlines the same spot as soon as your text matches (straight away in movement drills, where only the cursor moves). The target toggle turns that outline off, as does :set notarget typed from page keys (after :q). The diff toggle, on by default, shows what still needs adding (green) or removing (red). Window and tab drills show the layout to reach instead.
#Buffer pane
The editor where you work on a drill. It's a Vim emulator running in the browser (CodeMirror with a Vim layer, set up to behave like Neovim's defaults), so the keys taught here do what they would in nvim. A few things only work in a real Neovim, such as the undo tree's g- and g+ or buffer commands like :ls. :q hands your keys back to the page, and i jumps back into the editor.
:qi
#Disabled keys
Some drills switch off keys that would skip the technique being taught. They're listed under the prompt as disabled, and pressing one flashes a warning instead of acting. A disabled key still works as an argument, so with h disabled fh still finds an h. Arrow keys are off in every drill by default (except on the command line), and the settings page has more challenges, such as no hjkl.
#Cleared
A drill you've solved without revealing its solution first. The home page counts how many you've cleared, and each module's lesson list shows a green dot per cleared drill, or a yellow one once you've also matched par. Progress is saved in your browser, and the settings page can export it.
#Assisted
A finish after you revealed the solution (with :solution or the button). It's recorded, but the drill only counts as cleared once you solve it again without peeking. Hints are free: :hint shows them one at a time, gentlest first, and doesn't mark the drill as assisted.
:hint:solution
#Example
Each drill can show an example: the par keys replayed one at a time on different text, with each key shown as it goes in, so you can watch the technique before trying it on your own variant. :example shows or hides it from the keyboard.
:example
#Page keys (NAV)
Outside the editor, the site itself listens for Vim-style keys: j and k scroll or move through lists, / finds lessons, : opens a command line and ? lists every key. The pill in the bottom-right corner reads NAV while page keys are live and DRILL while you're typing in an editor.
jk/:?<Space>g