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

Reordering properties - 1046 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: 48
  • Position: #56 / 241
  • Number of attempts: 6
Changing date formats - 615 entries

Change the date format to Y/M/D.

  • Best score: 37
  • Best player score: 49
  • Position: #30 / 170
  • Number of attempts: 7
YAML to dotenv - 1255 entries

Convert this YAML config file to a .env file.

  • Best score: 16
  • Best player score: 16
  • Position: #17 / 266
  • Number of attempts: 8
Insert column data on Confluence-style table - 474 entries

Add ip addresses into new "IP" column based on the last digits from the "Server" column

  • Best score: 33
  • Best player score: 59
  • Position: #71 / 110
  • Number of attempts: 1
Surround the 'z' character with brackets, quotes, and print as formatted string. - 572 entries

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

  • Best score: 17
  • Best player score: 17
  • Position: #82 / 321
  • Number of attempts: 1
Paste a column after a column - 2632 entries

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

  • Best score: 14
  • Best player score: 18
  • Position: #265 / 570
  • Number of attempts: 3
Tabbed Table to Python Array - 755 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: 55
  • Position: #50 / 182
  • Number of attempts: 5
HS exam question - 1599 entries

Convert the data to a python dictionary

  • Best score: 47
  • Best player score: 57
  • Position: #90 / 419
  • Number of attempts: 5
Reformat symbols in list - 1635 entries

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

  • Best score: 24
  • Best player score: 27
  • Position: #117 / 352
  • Number of attempts: 4
Fizzbuzz - 586 entries

type the first 100 lines of the fizzbuzz problem

  • Best score: 44
  • Best player score: 59
  • Position: #41 / 169
  • Number of attempts: 4
Substraction (bis) - 621 entries

Solve the equations (adapted from the original @Caek_'s challenge).

  • Best score: 21
  • Best player score: 34
  • Position: #72 / 115
  • Number of attempts: 5
Poorly indented Python comments - 1328 entries

Fix the alignment of some Python comments as quickly as possible.

  • Best score: 15
  • Best player score: 21
  • Position: #73 / 223
  • Number of attempts: 8
Many duplicates - 1465 entries

Quick and easy

  • Best score: 7
  • Best player score: 8
  • Position: #131 / 478
  • Number of attempts: 1
2 quick changes and a numbered list - 648 entries

The ascii will not be lost, but rather numbered in 4 digit blocks with leading zeros.

  • Best score: 37
  • Best player score: 37
  • Position: #10 / 155
  • Number of attempts: 9
delete swap - 1818 entries

delete all swap

  • Best score: 5
  • Best player score: 5
  • Position: #85 / 567
  • Number of attempts: 3
Generate a very basic Python constructor (fixed) - 1281 entries

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

  • Best score: 29
  • Best player score: 30
  • Position: #70 / 275
  • Number of attempts: 6
Fix the shell script! - 2651 entries

Fix the shell script with the fewest keystrokes!

  • Best score: 26
  • Best player score: 27
  • Position: #93 / 616
  • Number of attempts: 5
Visual block training - 1096 entries

You see the input. You see the output. Go.

  • Best score: 17
  • Best player score: 23
  • Position: #67 / 207
  • Number of attempts: 4
Put a newline after every 10 lines in vim - 1668 entries

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

  • Best score: 10
  • Best player score: 13
  • Position: #360 / 561
  • Number of attempts: 1
Wikitext headings to markdown - 1014 entries

Convert the wikitext headings to markdown.

  • Best score: 20
  • Best player score: 23
  • Position: #101 / 211
  • Number of attempts: 5
hello-world-vimgolf - 2513 entries

Simple number generation

  • Best score: 10
  • Best player score: 11
  • Position: #403 / 717
  • Number of attempts: 1
Contribute to keyboard mashing - 900 entries

Speak in tongues

  • Best score: 17
  • Best player score: 19
  • Position: #147 / 273
  • 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: 35
  • Position: #92 / 185
  • Number of attempts: 3
Learn to ask for :help - 587 entries

Learn to use the help to reduce your strokes...

  • Best score: 19
  • Best player score: 23
  • Position: #29 / 130
  • Number of attempts: 9
Transpose a python matrix - 873 entries

Rotate the matrix in 90 degrees.

  • Best score: 23
  • Best player score: 34
  • Position: #55 / 138
  • Number of attempts: 16
Modernise code - 1420 entries

Modernise and clean up some C++ code.

  • Best score: 34
  • Best player score: 35
  • Position: #91 / 328
  • Number of attempts: 5
Enumerate Bullets - 330 entries

We will need to refer to the bullet points in our document explicitly later, so we need to assign them some ID's!

  • Best score: 18
  • Best player score: 29
  • Position: #55 / 90
  • Number of attempts: 2
swap number pairs - 2146 entries

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

  • Best score: 16
  • Best player score: 26
  • Position: #201 / 390
  • Number of attempts: 2
HS Final exam vimgolf - 913 entries

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

  • Best score: 21
  • Best player score: 22
  • Position: #78 / 241
  • Number of attempts: 3
Easy modification of ssh config - 382 entries

Just add another alias to each worker

  • Best score: 24
  • Best player score: 26
  • Position: #51 / 115
  • Number of attempts: 4
ssh config skills - 258 entries

Parse output from `kuebctl get no -o wide` into an .ssh/config file!

  • Best score: 41
  • Best player score: 48
  • Position: #27 / 66
  • Number of attempts: 2
Simple, Practical, and Common - 33866 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: 22
  • Position: #2359 / 7474
  • Number of attempts: 5
satetheus-vimgolf
Twitter:

entered into 32 challenges

contributed 0 challenges