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 - 1838 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: #293 / 403
  • Number of attempts: 4
EDN reformat - 1102 entries

The goal is to make the code more readable and concise while maintaining its functionality.

  • Best score: 17
  • Best player score: 33
  • Position: #115 / 154
  • Number of attempts: 2
Tic-Tac-Toe Grid Transformation - 381 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: #39 / 82
  • Number of attempts: 1
Populate 3D bone names list - 580 entries

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

  • Best score: 21
  • Best player score: 29
  • Position: #77 / 147
  • Number of attempts: 2
Remove line numbers - 671 entries

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

  • Best score: 10
  • Best player score: 14
  • Position: #98 / 182
  • Number of attempts: 2
Find fix point of cos - 1303 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: #166 / 381
  • Number of attempts: 2
Surround the 'z' character with brackets, quotes, and print as formatted string. - 532 entries

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

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

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

  • Best score: 14
  • Best player score: 23
  • Position: #349 / 535
  • Number of attempts: 3
Tabbed Table to Python Array - 706 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: #100 / 174
  • Number of attempts: 3
Reformat symbols in list - 1570 entries

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

  • Best score: 24
  • Best player score: 27
  • Position: #159 / 337
  • Number of attempts: 6
Fizzbuzz - 556 entries

type the first 100 lines of the fizzbuzz problem

  • Best score: 45
  • Best player score: 76
  • Position: #81 / 165
  • Number of attempts: 1
Changing around text with citations - 325 entries

Based off of something I saw on reddit

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

Quick and easy

  • Best score: 7
  • Best player score: 8
  • Position: #260 / 458
  • Number of attempts: 4
delete swap - 1754 entries

delete all swap

  • Best score: 5
  • Best player score: 5
  • Position: #292 / 542
  • Number of attempts: 5
Generate a very basic Python constructor (fixed) - 1250 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 / 270
  • Number of attempts: 1
Put a newline after every 10 lines in vim - 1656 entries

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

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

Simple number generation

  • Best score: 10
  • Best player score: 15
  • Position: #560 / 702
  • Number of attempts: 3
Contribute to keyboard mashing - 887 entries

Speak in tongues

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

Who even sorted this?

  • Best score: 13
  • Best player score: 87
  • Position: #44 / 65
  • Number of attempts: 2
Fill in the chess board - 947 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: #120 / 181
  • Number of attempts: 2
Transpose a python matrix - 871 entries

Rotate the matrix in 90 degrees.

  • Best score: 23
  • Best player score: 65
  • Position: #100 / 137
  • Number of attempts: 1
simple replacements - 1749 entries

The goal is to see the replacement commands in action.

  • Best score: 19
  • Best player score: 28
  • Position: #328 / 379
  • Number of attempts: 1
Inverting Lines - 1879 entries

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

  • Best score: 10
  • Best player score: 11
  • Position: #260 / 507
  • Number of attempts: 5
Python dataclasses - 1127 entries

Simple challenge to extract fields from a Python class

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

Simple challenge for frequent action while programming.

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

Put a cross in the square

  • Best score: 20
  • Best player score: 22
  • Position: #37 / 88
  • Number of attempts: 2
swap number pairs - 2064 entries

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

  • Best score: 16
  • Best player score: 30
  • Position: #241 / 375
  • Number of attempts: 1
HS Final exam vimgolf - 894 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: #118 / 235
  • Number of attempts: 7
Simple, Practical, and Common - 33528 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: #4519 / 7396
  • Number of attempts: 3
Just the middle - 11411 entries

Delete the instructions at the top and bottom.

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

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

  • Best score: 24
  • Best player score: 39
  • Position: #434 / 499
  • Number of attempts: 1
I forgot quotes - 15954 entries

Oops.

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

entered into 32 challenges

contributed 0 challenges