This course material requires a larger screen to properly display the terminal and editor interfaces.
Please use a tablet, laptop, or desktop computer for the best learning experience.
You can continue browsing, but the experience will be significantly limited.
Create an account to track your progress and appear on leaderboards.
The kids have hijacked our family playlist with endless loops of Steve’s “Lava Chicken.” Use Vim to delete every “Lava Chicken” entry—except one at the very end as a reward for enduring Mom’s chill jazz and Dad’s rock ballads.
88
19s
19
No upcoming challenges scheduled yet.
Make your boss happy by cleaning up the log file. He's watching! 👀
Typecraft's baby log has been mostly well-kept… until a sleep-deprived 3AM entry and a couple voice-to-text dictations gone wrong. Now the pediatrician’s email parser is rejecting the log due to "inconsistent formatting." Your task is to clean it up and convert it into CSV.
Wrap text at 40 characters and clean up this internal HR email before it’s forwarded to the CTO.
You’re preparing this data for a Very Serious Recruiter™ who only wants: - The names of people who are "looking" for jobs - No emojis - All job titles uppercased
You (or an overeager teammate) dumped your Git aliases into ~/.zshrc without the proper alias prefix or surrounding single quotes. Before your shell breaks, let’s correct the syntax.
Release imminent! Boss 'Captain Deadline' yells: 'SHIP IT OR WE SINK!' You have one bash script with markers: #DEV_ONLY and #PROD_ONLY. Rules: - #DEV_ONLY → comment out (add leading #). - #PROD_ONLY → uncomment (remove leading #). - Both → Prod wins (line stays active). Fix it in five minutes or suffer a 200-slide Lunch 'n Learn on our release process.
Sleep-deprived Chris, fueled by coffee and newborn cries, dumped the baby’s details into one chaotic line. Rescue his zombie-scribble and turn it into a proud, multi-line bullet list.
During this morning’s caffeine-fueled Scrum, we declared: “Our AI calls must be as neat as a barista’s latte art.” Any call with multiple keyword args now gets its own line, wrapped in parentheses—no more parameter chaos!
It’s summer, and you only want to feature seasonal ice-cream flavors on the website. Given a CSV of every flavor, filter out only those marked “Yes” under Seasonal, convert their names to UPPERCASE, and sort them alphabetically. Use Vim’s global commands and simple edits—no heavy regex magic needed.
The family’s summer plans are in chaos—a single semicolon-separated line of events out of order. Let’s split them into a bullet list and sort by date so Mom can stop yelling “Who planned August before July?!” before the road trip.
New Challenge
Wednesdays at 10am ET
Total Participants
664 Vim Enthusiasts