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

Quicksort - 1968 entries

We need the numbers in the first row sorted as quickly as possible! Be careful not to disturb the data below the divider though: that must remain unchanged.

  • Best score: 6
  • Best player score: 29
  • Position: #314 / 434
  • Number of attempts: 4
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: 33
  • Position: #122 / 164
  • Number of attempts: 2
Tic-Tac-Toe Grid Transformation - 396 entries

Your mission is to efficiently convert the original Tic-Tac-Toe grid, represented by 'x's and 'o's, into a neat and well-organized game board.

  • Best score: 56
  • Best player score: 112
  • Position: #40 / 83
  • Number of attempts: 1
Populate 3D bone names list - 629 entries

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

  • Best score: 21
  • Best player score: 29
  • Position: #84 / 162
  • Number of attempts: 2
Remove line numbers - 736 entries

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

  • Best score: 9
  • Best player score: 14
  • Position: #106 / 198
  • Number of attempts: 2
Find fix point of cos - 1403 entries

Write a function to find the fix point of cos. It is not a good code; It is just to use vim. Inspired by the excellent https://mvanier.livejournal.com/2897.html about the Y combinator.

  • Best score: 14
  • Best player score: 15
  • Position: #171 / 416
  • Number of attempts: 2
Surround the 'z' character with brackets, quotes, and print as formatted string. - 560 entries

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

  • Best score: 17
  • Best player score: 17
  • Position: #154 / 313
  • Number of attempts: 1
Paste a column after a column - 2537 entries

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

  • Best score: 14
  • Best player score: 23
  • Position: #361 / 553
  • Number of attempts: 3
Tabbed Table to Python Array - 735 entries

Not payed by the hour? So make it fast ;-) The table contains the relative occurencies of bigrams (two consecutive letters) in 1/100,000 in the german language, copy-pasted from http://www.mathe.tu-freiberg.de/~hebisch/cafe/kryptographie/bigramme.html

  • Best score: 50
  • Best player score: 62
  • Position: #104 / 179
  • Number of attempts: 3
Reformat symbols in list - 1621 entries

Saw this in some lecture, easy reformatting using multiple cursor in VS Code

  • Best score: 24
  • Best player score: 27
  • Position: #165 / 348
  • Number of attempts: 6
Fizzbuzz - 574 entries

type the first 100 lines of the fizzbuzz problem

  • Best score: 44
  • Best player score: 76
  • Position: #83 / 168
  • Number of attempts: 1
Changing around text with citations - 329 entries

Based off of something I saw on reddit

  • Best score: 28
  • Best player score: 43
  • Position: #67 / 93
  • Number of attempts: 2
Many duplicates - 1445 entries

Quick and easy

  • Best score: 7
  • Best player score: 8
  • Position: #261 / 468
  • Number of attempts: 4
delete swap - 1786 entries

delete all swap

  • Best score: 5
  • Best player score: 5
  • Position: #292 / 555
  • Number of attempts: 5
Generate a very basic Python constructor (fixed) - 1253 entries

Original by @BiddulphCaleb (http://www.vimgolf.com/challenges/6019f1c4642668000cee11e8) - had some extra spaces in output file.

  • Best score: 29
  • Best player score: 47
  • Position: #161 / 271
  • Number of attempts: 1
Put a newline after every 10 lines in vim - 1660 entries

Goal is to put a newline after every 10 lines in vim.

  • Best score: 10
  • Best player score: 11
  • Position: #187 / 558
  • Number of attempts: 3
hello-world-vimgolf - 2499 entries

Simple number generation

  • Best score: 10
  • Best player score: 15
  • Position: #565 / 708
  • Number of attempts: 3
Contribute to keyboard mashing - 890 entries

Speak in tongues

  • Best score: 17
  • Best player score: 17
  • Position: #50 / 270
  • Number of attempts: 5
Reordering Lorem Ipsum - 290 entries

Who even sorted this?

  • Best score: 13
  • Best player score: 87
  • Position: #45 / 66
  • Number of attempts: 2
Fill in the chess board - 959 entries

Fill in the name of each square using its file (a-h) and rank (1-8).

  • Best score: 19
  • Best player score: 42
  • Position: #124 / 185
  • Number of attempts: 2
Transpose a python matrix - 873 entries

Rotate the matrix in 90 degrees.

  • Best score: 23
  • Best player score: 65
  • Position: #101 / 138
  • Number of attempts: 1
simple replacements - 1762 entries

The goal is to see the replacement commands in action.

  • Best score: 19
  • Best player score: 28
  • Position: #330 / 381
  • Number of attempts: 1
Inverting Lines - 1900 entries

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

  • Best score: 10
  • Best player score: 11
  • Position: #262 / 511
  • Number of attempts: 5
Python dataclasses - 1136 entries

Simple challenge to extract fields from a Python class

  • Best score: 19
  • Best player score: 30
  • Position: #191 / 284
  • Number of attempts: 1
Making 3 line function a one liner. - 328 entries

Simple challenge for frequent action while programming.

  • Best score: 4
  • Best player score: 4
  • Position: #165 / 205
  • Number of attempts: 1
Put a cross in the square - 225 entries

Put a cross in the square

  • Best score: 20
  • Best player score: 22
  • Position: #38 / 89
  • Number of attempts: 2
swap number pairs - 2104 entries

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

  • Best score: 16
  • Best player score: 30
  • Position: #244 / 381
  • Number of attempts: 1
HS Final exam vimgolf - 897 entries

Change the initial file to a single line containing all names comma-separated with numbers inside parentheses.

  • Best score: 21
  • Best player score: 25
  • Position: #119 / 236
  • Number of attempts: 7
Simple, Practical, and Common - 33664 entries

Simple things we do all the time should be able to be done with very few keystrokes, but sometimes I find something I need to do makes me go, "There MUST be a better way." This challenge is just a simple movement and entering text at a certain place.

  • Best score: 22
  • Best player score: 28
  • Position: #4534 / 7429
  • Number of attempts: 3
Just the middle - 11473 entries

Delete the instructions at the top and bottom.

  • Best score: 7
  • Best player score: 7
  • Position: #1502 / 4205
  • Number of attempts: 6
Line under headers - 2047 entries

Put a line under each header, and remove the other markdown formatting.

  • Best score: 24
  • Best player score: 39
  • Position: #435 / 505
  • Number of attempts: 1
I forgot quotes - 16007 entries

Oops.

  • Best score: 10
  • Best player score: 15
  • Position: #2388 / 4186
  • Number of attempts: 3
Ludovic Schwartz
Github:

entered into 32 challenges

contributed 0 challenges