1. Describe the challenge
2. Expected end state
Trailing spaces and blank lines at the end are ignored.
More assertions and presets (windows, tabs, quickfix, diagnostics, marks)
Presets: diagnostics plants warnings on those lines ("ARC: ..."), splits opens three windows, alt_buffer puts you in a second buffer, quickfix_hits fills the quickfix list with those lines.
3. Reference solution and lesson
Plugin tips (shown to players who have that kind of plugin)
Result
"Submit" opens GitHub's new-file page prefilled with this challenge; GitHub forks the repo and opens a pull
request for you. CI replays your reference solution (must fail at the start and pass after your keys) and a maintainer reviews it.
If the link is too long for your browser, use Copy JSON and add challenges/<id>.json yourself.
Play it
:g with ranges, registers beyond the basics) may behave
slightly differently. Use Test in Neovim below for the real thing.Click the editor and play. The clock starts on your first key.
Join in Neovim
Your draft gets a room code. Paste it in Neovim and play with your own keybinds and plugins. Nothing is saved: no points, bests or stats. The code carries the whole draft, so there is no upload and nothing to clean up.
:ArcadeJoin ARC1.
- Press Copy command.
- In Neovim paste it and press Enter (
:ArcadeTryworks too). - Solve it your way. Fix the draft here and copy again.
Prefer a file?
:ArcadeTry ~/Downloads/challenge.json
Check the reference keys
Replays your reference keys on the start buffer with a small approximate interpreter (common normal-mode keys only). Neovim and the CI replay are the authority.
Published challenges
In Neovim: :ArcadeSync downloads them. They join your runs and practice, marked as community.