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

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

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

  • Best score: 17
  • Best player score: 19
  • Position: #298 / 328
  • Number of attempts: 4
Paste a column after a column - 2668 entries

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

  • Best score: 14
  • Best player score: 75
  • Position: #549 / 578
  • Number of attempts: 2
HS exam question - 1613 entries

Convert the data to a python dictionary

  • Best score: 47
  • Best player score: 97
  • Position: #333 / 422
  • Number of attempts: 1
2 quick changes and a numbered list - 661 entries

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

  • Best score: 37
  • Best player score: 90
  • Position: #138 / 157
  • Number of attempts: 4
delete swap - 1912 entries

delete all swap

  • Best score: 5
  • Best player score: 5
  • Position: #252 / 580
  • Number of attempts: 2
Fix the shell script! - 2681 entries

Fix the shell script with the fewest keystrokes!

  • Best score: 26
  • Best player score: 43
  • Position: #461 / 624
  • Number of attempts: 1
Java to JavaScript - 302 entries

Let convert some simple Java file to JavaScript!

  • Best score: 59
  • Best player score: 212
  • Position: #78 / 78
  • Number of attempts: 1
hello-world-vimgolf - 2533 entries

Simple number generation

  • Best score: 10
  • Best player score: 18
  • Position: #629 / 726
  • Number of attempts: 1
Lowercase first characters - 509 entries

This is the (abridged) input for Day 3 in Advent of Code 2019. The output is a format more suitable for Prolog programming: the two lines of input become two lists of pairs, joined together in a wires functor.

  • Best score: 33
  • Best player score: 59
  • Position: #171 / 188
  • Number of attempts: 1
Generate a very basic Python constructor - 337 entries

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

  • Best score: 38
  • Best player score: 69
  • Position: #81 / 102
  • Number of attempts: 1
Python dataclasses - 1253 entries

Simple challenge to extract fields from a Python class

  • Best score: 19
  • Best player score: 37
  • Position: #273 / 313
  • Number of attempts: 1
RUST Cargo.toml version to last - 399 entries

RUST Cargo.toml version to last. rusty practice on vimgolf

  • Best score: 16
  • Best player score: 48
  • Position: #104 / 106
  • Number of attempts: 1
RUST match with enum for Coin - 196 entries

RUST match with enum for Coin rusty practice on vimgolf

  • Best score: 84
  • Best player score: 188
  • Position: #56 / 56
  • Number of attempts: 1
Making 3 line function a one liner. - 347 entries

Simple challenge for frequent action while programming.

  • Best score: 4
  • Best player score: 8
  • Position: #205 / 214
  • Number of attempts: 4
Modernise code - 1439 entries

Modernise and clean up some C++ code.

  • Best score: 34
  • Best player score: 56
  • Position: #274 / 333
  • Number of attempts: 1
Enumerate Bullets - 339 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: 38
  • Position: #66 / 93
  • Number of attempts: 1
Python: Def to Lambda - 492 entries

LAMBDA!!!

  • Best score: 19
  • Best player score: 25
  • Position: #152 / 162
  • Number of attempts: 1
Format the CSS - 185 entries

You just copied some CSS color names from the web and need to add them to your python module. Create the COLORS variable and assign a dict() with the names as keys and hex-colors as values. BEWARE OF THE TABS!!

  • Best score: 41
  • Best player score: 60
  • Position: #51 / 52
  • Number of attempts: 1
Duy nguyễn
Twitter2:

entered into 18 challenges

contributed 0 challenges