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

Find the devices that have no revoked time, and extract out the duration left on their leases. - 80 entries

Extract non-revoked devices and the duration of their leases.

  • Best score: 50
  • Best player score: 84
  • Position: #19 / 26
  • Number of attempts: 4
From brakets to parens - 1051 entries

This is one of the most common problem when you wrap an array for error handling. Vim is useful when you convert foo[i][j][k] into foo(i, j, k) for many times.

  • Best score: 24
  • Best player score: 35
  • Position: #103 / 231
  • Number of attempts: 5
Create json from a .env file - 1549 entries

A simple everyday task.

  • Best score: 39
  • Best player score: 51
  • Position: #116 / 362
  • Number of attempts: 5
Reordering properties - 1192 entries

Arrange the CSS lines for the #topbar selector based on their complete line length, from shortest to longest.

  • Best score: 24
  • Best player score: 97
  • Position: #192 / 275
  • Number of attempts: 2
Sort and Tag - 680 entries

The goal is to sort these lines alphabetically, assign a unique identifier to each line in the format "[01]", "[02]", etc., and then restore the original order of the lines while preserving the assigned identifiers.

  • Best score: 36
  • Best player score: 131
  • Position: #114 / 142
  • Number of attempts: 1
YAML to dotenv - 1510 entries

Convert this YAML config file to a .env file.

  • Best score: 16
  • Best player score: 25
  • Position: #167 / 307
  • Number of attempts: 8
Swap columns and transform to CSV format - 430 entries

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

  • Best score: 16
  • Best player score: 27
  • Position: #134 / 155
  • Number of attempts: 2
Generate an entry for each month - 372 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: 77
  • Position: #75 / 92
  • Number of attempts: 4
Replace markdown sections with numbering - 308 entries

Replace each section and subsection with their respective numbers

  • Best score: 29
  • Best player score: 65
  • Position: #44 / 84
  • Number of attempts: 4
Fix the Scala Method - 317 entries

Fix the missing semicolons and the Int type, ensure the floating point division, and remove the unnecessary return.

  • Best score: 2
  • Best player score: 29
  • Position: #78 / 105
  • Number of attempts: 2
Change class fields from snake case to camel case - 298 entries

Change the class fields in this Scala class from snake case to camel case

  • Best score: 13
  • Best player score: 13
  • Position: #23 / 112
  • Number of attempts: 1
Reorganize Pokémon - 813 entries

Change the format of the each line and sort alphabetically.

  • Best score: 18
  • Best player score: 19
  • Position: #48 / 222
  • Number of attempts: 4
Replace csv column if it's not empty - 258 entries

Replace the credit_score_percentile column with the value 0.0 but leave the empty ones untouched

  • Best score: 15
  • Best player score: 19
  • Position: #72 / 89
  • Number of attempts: 3
extract struct tag in go - 150 entries

Can you extract all struct tags in the fewest keystrokes possible?

  • Best score: 29
  • Best player score: 33
  • Position: #7 / 42
  • Number of attempts: 3
Append leading hyphen count to each line - 131 entries

Append the number of leading hyphens to the end of each line.

  • Best score: 23
  • Best player score: 25
  • Position: #21 / 36
  • Number of attempts: 2
Move list of uuids into a SQL query - 227 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: 72
  • Position: #55 / 73
  • Number of attempts: 2
Word completion - 284 entries

Try to complete these options within 20 keystrokes.

  • Best score: 20
  • Best player score: 23
  • Position: #29 / 76
  • Number of attempts: 3
Fix timezone format - 329 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: 15
  • Position: #4 / 106
  • Number of attempts: 7
Search different SQL column with similar where clause - 330 entries

Replace a column in the where clause and convert all numbers from text to numeric, by replacing the leading 0 with the code 359.

  • Best score: 22
  • Best player score: 23
  • Position: #21 / 76
  • Number of attempts: 6
Remove adjacent duplicates - 673 entries

Try to find a way to remove adjacent duplicate letters.

  • Best score: 19
  • Best player score: 33
  • Position: #102 / 169
  • Number of attempts: 2
Rearrange array to single level - 1742 entries

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

  • Best score: 14
  • Best player score: 25
  • Position: #133 / 291
  • Number of attempts: 3
Rearrange array to one line - 810 entries

Rearrange the array content on only one line, and remove trailing commas

  • Best score: 13
  • Best player score: 22
  • Position: #122 / 191
  • Number of attempts: 2
months to html list items - 1130 entries

Turn the months into list items.

  • Best score: 22
  • Best player score: 36
  • Position: #265 / 306
  • Number of attempts: 1
Populate 3D bone names list - 652 entries

Ran into this at work, excited to see how this gets optimized

  • Best score: 21
  • Best player score: 37
  • Position: #136 / 168
  • Number of attempts: 2
Remove line numbers - 778 entries

From http://web.archive.org/web/20140831121704/http://dirac.org/linux/gdb/02a-Memory_Layout_And_The_Stack.php#investigatingthestackwithgdb.

  • Best score: 8
  • Best player score: 43
  • Position: #178 / 205
  • Number of attempts: 1
Surround the 'z' character with brackets, quotes, and print as formatted string. - 576 entries

Surround the 'z' character with brackets, quotes, and print as formatted string.

  • Best score: 17
  • Best player score: 17
  • Position: #224 / 324
  • Number of attempts: 1
Paste a column after a column - 2662 entries

This task is very common while using multi-cursor. What is the elegant vim way ?

  • Best score: 14
  • Best player score: 43
  • Position: #488 / 576
  • Number of attempts: 1
Many duplicates - 1472 entries

Quick and easy

  • Best score: 7
  • Best player score: 8
  • Position: #318 / 480
  • Number of attempts: 3

Contributed Challenges

Markdown Blog Editing - 467 entries

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

ak@developer
Github:

entered into 28 challenges

contributed 1 challenges