Timed, scored Vim puzzles. Unlike lessons, challenges don't teach — they test. Transform a buffer to match the target using as few keystrokes as possible.
Use D to delete everything from the cursor to the end of the line.
Delete two lines, then undo both deletions to restore the original buffer.
Use I to insert "# " at the beginning of each line to create markdown headers.
Use visual block mode to add "// " to the beginning of multiple lines.
Manually wrap a word in parentheses without a surround plugin.
Copy a line from the top and paste it at the bottom of the file.
Use search and the dot command to delete all lines containing console.log.
Use the substitute command to replace all occurrences of a word.
Record a macro to wrap each line's content in double quotes, then apply it to all remaining lines.
Remove all blank lines from a file using the global command.
Rename a variable using word boundaries to avoid partial matches.
Use interactive substitution (gc flag) to selectively replace occurrences.
Use visual block mode to change a word across multiple lines simultaneously.
Use named registers to rearrange three sections into alphabetical order.
Record a macro to reformat log lines from "[TIMESTAMP] LEVEL: message" to "LEVEL | message".
Keep only lines containing "error" and delete everything else.
Align the = signs in variable declarations so they form a column.
Use a recursive macro to convert all TODO: prefixes to DONE: until end of file.
Sign in to track your scores and completion history