Real Vim ninjas count every keystroke - do you?

Pick a challenge, fire up Vim, and show us what you got.

Changelog, Rules & FAQ, updates: @vimgolf, RSS.

Your VimGolf key: please sign in

$ gem install vimgolf
$ vimgolf setup
$ vimgolf put [challenge ID]

Played Challenges

Changing date formats - 75 entries

Change the date format to Y/M/D.

  • Best score: 37
  • Best player score: 103
  • Position: #21 / 29
  • Number of attempts: 1
YAML to dotenv - 101 entries

Convert this YAML config file to a .env file.

  • Best score: 16
  • Best player score: 23
  • Position: #15 / 26
  • Number of attempts: 2
Change to ascending order - 139 entries

Change each line of numbers consistently from descending to ascending order.

  • Best score: 17
  • Best player score: 44
  • Position: #17 / 39
  • Number of attempts: 6
Swap columns and transform to CSV format - 70 entries

Turn this spreadsheet output into a CSV file but first swap the columns

  • Best score: 16
  • Best player score: 17
  • Position: #12 / 28
  • Number of attempts: 3
Generate an entry for each month - 107 entries

The input file contains a URI with a month in it. Generate the URIs for all the other months up to a couple of years

  • Best score: 27
  • Best player score: 48
  • Position: #22 / 34
  • Number of attempts: 2
Fix the git merge conflicts - 79 entries

Solve the merge conflicts in the Python file

  • Best score: 36
  • Best player score: 62
  • Position: #18 / 26
  • Number of attempts: 3
The Fibonacci Spacer - 52 entries

Split the words, remove punctuation and add spaces before each line following the Fibonacci sequence (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89)

  • Best score: 25
  • Best player score: 65
  • Position: #14 / 19
  • Number of attempts: 4
Replace markdown sections with numbering - 144 entries

Replace each section and subsection with their respective numbers

  • Best score: 29
  • Best player score: 55
  • Position: #19 / 43
  • Number of attempts: 2
Reorganize Pokémon - 303 entries

Change the format of the each line and sort alphabetically.

  • Best score: 18
  • Best player score: 18
  • Position: #16 / 81
  • Number of attempts: 9
CaN yOuR ViM dO ThAt? #1 - 82 entries

Tsoding's famous "Can your Vim do that?" https://youtu.be/Bafo3hhheHU?si=DfcT4sUEMTSAevnx&t=1091

  • Best score: 41
  • Best player score: 45
  • Position: #16 / 35
  • Number of attempts: 3
Move list of uuids into a SQL query - 69 entries

Take the list of UUIDs and use them as a filter in the where statement of a SQL query

  • Best score: 57
  • Best player score: 67
  • Position: #19 / 29
  • Number of attempts: 2
Markdown Blog Editing - 262 entries

Convert the given link text in start file to a markdown link list.

  • Best score: 30
  • Best player score: 42
  • Position: #28 / 63
  • Number of attempts: 7
Fix timezone format - 225 entries

Add the missing T and Z in the datetime field. There should be a T instead of the space, and a Z at the end of the datetime. `2024-08-31 18:32:00;` -> `2024-08-31T18:32:00Z;`

  • Best score: 15
  • Best player score: 19
  • Position: #56 / 75
  • Number of attempts: 3
Remove adjacent duplicates - 446 entries

Try to find a way to remove adjacent duplicate letters.

  • Best score: 19
  • Best player score: 37
  • Position: #83 / 118
  • Number of attempts: 8
Rearrange array to single level - 1301 entries

The goal is to flatten the array into a single list and remove any empty elements.

  • Best score: 14
  • Best player score: 17
  • Position: #33 / 207
  • Number of attempts: 10
Copy punctuation - 488 entries

I want to copy the last line’s brackets, quotes, and commas to each line. How?

  • Best score: 19
  • Best player score: 51
  • Position: #96 / 122
  • Number of attempts: 2
Column wise pasting - 172 entries

Make a table from 3 columns

  • Best score: 17
  • Best player score: 38
  • Position: #30 / 37
  • Number of attempts: 4
Deleting text - 254 entries

Delete everything except some specific numbers.

  • Best score: 26
  • Best player score: 45
  • Position: #46 / 81
  • Number of attempts: 1
New teacher - 925 entries

Update the details of the new CS teacher.

  • Best score: 19
  • Best player score: 24
  • Position: #78 / 196
  • Number of attempts: 12
months to html list items - 1010 entries

Turn the months into list items.

  • Best score: 22
  • Best player score: 22
  • Position: #46 / 274
  • Number of attempts: 6
EDN reformat - 1158 entries

The goal is to make the code more readable and concise while maintaining its functionality.

  • Best score: 17
  • Best player score: 18
  • Position: #78 / 164
  • Number of attempts: 3
Inverting Lines - 1900 entries

A simple challenge to invert all lines, except the first.

  • Best score: 10
  • Best player score: 10
  • Position: #233 / 511
  • Number of attempts: 8
Python dataclasses - 1136 entries

Simple challenge to extract fields from a Python class

  • Best score: 19
  • Best player score: 19
  • Position: #80 / 284
  • Number of attempts: 9
Modernise code - 1400 entries

Modernise and clean up some C++ code.

  • Best score: 34
  • Best player score: 39
  • Position: #128 / 323
  • Number of attempts: 4
swap number pairs - 2103 entries

Swap the numbers in a bunch of 2-element arrays.

  • Best score: 16
  • Best player score: 17
  • Position: #117 / 380
  • Number of attempts: 13
Get mail address from outlook format - 649 entries

Create a mail list space separated of mail list formatted by outlook

  • Best score: 15
  • Best player score: 17
  • Position: #138 / 204
  • Number of attempts: 2
One number per line - 18732 entries

Just give me the numbers.

  • Best score: 14
  • Best player score: 23
  • Position: #3128 / 3865
  • Number of attempts: 2
Swap values inside brackets - 2496 entries

Easy challenge.

  • Best score: 14
  • Best player score: 17
  • Position: #318 / 579
  • Number of attempts: 3
Applying same text modification in several lines - 2880 entries

Remove identical text at the beginning of several lines and the closing parenthesis.

  • Best score: 12
  • Best player score: 13
  • Position: #274 / 851
  • Number of attempts: 3
Bad Copy Syntax - 2037 entries

Copy should be from right to left, but sometimes you type it wrong.

  • Best score: 18
  • Best player score: 20
  • Position: #275 / 525
  • Number of attempts: 4
remove lines containing the word "reader" - 3586 entries

easy stuff

  • Best score: 9
  • Best player score: 10
  • Position: #863 / 1162
  • Number of attempts: 3
From argument to object - 1508 entries

This task typifies those programmers endure while coding. This C-family pseudocode needs a function argument to be repurposed as an object call. Simply search and replace? Repeat a pattern of edits?

  • Best score: 17
  • Best player score: 18
  • Position: #272 / 458
  • Number of attempts: 3
Align commas - 1095 entries

There are 15,000 aligning challenges on vimgolf.com, and they're all exactly the same. I hope this one is a little different.

  • Best score: 11
  • Best player score: 19
  • Position: #214 / 246
  • Number of attempts: 3
One to Ten - 2219 entries

Generate the sequence of numbers from 1 to 10, one number per line. Inspired by this Reddit thread: https://redd.it/ak4it2

  • Best score: 12
  • Best player score: 12
  • Position: #370 / 672
  • Number of attempts: 5
move titles next to url, in quotes - 534 entries

had trouble with something similar

  • Best score: 19
  • Best player score: 24
  • Position: #120 / 141
  • Number of attempts: 2
Array transposition - 2417 entries

Transpose two arrays into one.

  • Best score: 16
  • Best player score: 45
  • Position: #417 / 448
  • Number of attempts: 1
REDRUM - 166 entries

If you remember "The Shinning", the first time you saw the bloody word REDRUM you probably thinked "What the Hell is that?" Well, then you know that you need a little help from a looking-glass to make sense of it. Now it's time to use vim like a mirror to reveal the message.

  • Best score: 14
  • Best player score: 34
  • Position: #62 / 65
  • Number of attempts: 2
lamb had a little Mary - 609 entries

"Mary" and "lamb" are swapped. Unswap them. Fast as you can.

  • Best score: 16
  • Best player score: 44
  • Position: #154 / 168
  • Number of attempts: 2
Chucking wood - 129 entries

An exercise in compressing repetitive text. For this challenge, any entry that uses keys outside the main row (such as arrow keys, Home, End, Delete, etc.) will be removed. (Esc is OK, though you should be using C-[ anyway.)

  • Best score: 51
  • Best player score: 59
  • Position: #35 / 49
  • Number of attempts: 4
Unwrap the text of an email message - 192 entries

Reverse of "Wrap the text of an email message to 79 characters". gq and gw are great for wrapping paragraphs. But sometimes other programs choke on your wrapped lines. What's the best way to un-gq?

  • Best score: 16
  • Best player score: 24
  • Position: #55 / 75
  • Number of attempts: 3
Switch function arguments - 2139 entries

How to switch two arguments of a function.

  • Best score: 11
  • Best player score: 12
  • Position: #340 / 663
  • Number of attempts: 3
It'ss tooo coold too typpe todaay - 224 entries

My hands are numb with cold. It's hard to type correctly.

  • Best score: 16
  • Best player score: 23
  • Position: #71 / 98
  • Number of attempts: 2
The Cake is a Lie - 1346 entries

Correct the capitalization of each word

  • Best score: 9
  • Best player score: 9
  • Position: #287 / 527
  • Number of attempts: 5
Whitespace, empty lines and tabs - 3670 entries

Convert tabs to spaces, strip empty lines and trailing whitespace.

  • Best score: 16
  • Best player score: 29
  • Position: #520 / 788
  • Number of attempts: 4
k1mosabe
Github:

entered into 44 challenges

contributed 0 challenges