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

Populate 3D bone names list - 459 entries

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

  • Best score: 21
  • Best player score: 28
  • Position: #63 / 122
  • Number of attempts: 4
Paste a column after a column - 2262 entries

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

  • Best score: 14
  • Best player score: 23
  • Position: #316 / 491
  • Number of attempts: 2
HS exam question - 1510 entries

Convert the data to a python dictionary

  • Best score: 47
  • Best player score: 61
  • Position: #126 / 397
  • Number of attempts: 2
Fizzbuzz - 510 entries

type the first 100 lines of the fizzbuzz problem

  • Best score: 45
  • Best player score: 73
  • Position: #68 / 157
  • Number of attempts: 2
delete swap - 1548 entries

delete all swap

  • Best score: 5
  • Best player score: 14
  • Position: #437 / 484
  • Number of attempts: 1
Put a newline after every 10 lines in vim - 1581 entries

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

  • Best score: 10
  • Best player score: 13
  • Position: #386 / 527
  • Number of attempts: 2
hello-world-vimgolf - 2379 entries

Simple number generation

  • Best score: 10
  • Best player score: 10
  • Position: #299 / 674
  • Number of attempts: 4
Generate a very basic Python constructor - 309 entries

I actually needed to do this myself, so I look forward to learning how.

  • Best score: 38
  • Best player score: 60
  • Position: #63 / 95
  • Number of attempts: 4
Python dataclasses - 1105 entries

Simple challenge to extract fields from a Python class

  • Best score: 19
  • Best player score: 27
  • Position: #162 / 278
  • Number of attempts: 3
Multiline to Single Line - 668 entries

Convert a multiline, indented file to a single line with no whitespace

  • Best score: 5
  • Best player score: 16
  • Position: #289 / 292
  • Number of attempts: 1
Copy three lines - 2849 entries

If the site is up (by some miracle), make the text under every header identical.

  • Best score: 13
  • Best player score: 20
  • Position: #425 / 636
  • Number of attempts: 2
Start coding format - 147 entries

I used to start coding with following format: int main(){ -(cursor here) }

  • Best score: 22
  • Best player score: 27
  • Position: #68 / 70
  • Number of attempts: 3
Order and join - 956 entries

There's something special about the input order.

  • Best score: 10
  • Best player score: 13
  • Position: #188 / 255
  • Number of attempts: 5
Array of characters - 153 entries

We all copy paste things off the internet, but the syntax doesn't look right. Fix it as fast as possible.

  • Best score: 33
  • Best player score: 89
  • Position: #45 / 45
  • Number of attempts: 1
I forgot quotes - 15931 entries

Oops.

  • Best score: 10
  • Best player score: 17
  • Position: #3072 / 4161
  • Number of attempts: 1
A HAPPY NEW YEAR 2014 ! - 10628 entries

A HAPPY NEW YEAR 2014 !

  • Best score: 11
  • Best player score: 15
  • Position: #3198 / 3667
  • Number of attempts: 1
Python: Lots of function arguments - 102 entries

The function definition is too long for one line. The modeline helps you with some typical Python indent settings.

  • Best score: 13
  • Best player score: 24
  • Position: #40 / 46
  • Number of attempts: 3
Let's play some Ivmgolf - 1091 entries

Oops, I spelled that wrong.

  • Best score: 7
  • Best player score: 7
  • Position: #141 / 441
  • Number of attempts: 5
Vertical Limit - 2448 entries

transform a succession of one word lines to a an array of strings

  • Best score: 21
  • Best player score: 31
  • Position: #666 / 738
  • Number of attempts: 2
Make the circuit grid! - 87 entries

Copy this command for a circuit layout program to create 10 total smd commands. Increment the number in quotes to name each pad, and add 0.7 to each of the (X Y) coordinates at the end of each line.

  • Best score: 26
  • Best player score: 48
  • Position: #43 / 48
  • Number of attempts: 1
replacing each line of a block selection - 2947 entries

replace each line's ../assets/js with /javascripts

  • Best score: 18
  • Best player score: 25
  • Position: #543 / 768
  • Number of attempts: 5
The meaning - 558 entries

Numbers are fun!

  • Best score: 5
  • Best player score: 5
  • Position: #319 / 356
  • Number of attempts: 1
Reverse Simple Deletion - 832 entries

You did the simple deletion, now reverse it.

  • Best score: 11
  • Best player score: 12
  • Position: #371 / 454
  • Number of attempts: 1
Vincent Lai
Twitter:

entered into 23 challenges

contributed 0 challenges