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 - 2035 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: #328 / 450
  • Number of attempts: 4
EDN reformat - 1175 entries

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

  • Best score: 17
  • Best player score: 33
  • Position: #123 / 167
  • Number of attempts: 2
Tic-Tac-Toe Grid Transformation - 413 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: #42 / 85
  • Number of attempts: 1
Populate 3D bone names list - 636 entries

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

  • Best score: 21
  • Best player score: 29
  • Position: #85 / 164
  • Number of attempts: 2
Remove line numbers - 745 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: #107 / 199
  • Number of attempts: 2
Find fix point of cos - 1426 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: #173 / 422
  • Number of attempts: 2
Surround the 'z' character with brackets, quotes, and print as formatted string. - 567 entries

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

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

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

  • Best score: 14
  • Best player score: 23
  • Position: #371 / 565
  • Number of attempts: 3
Tabbed Table to Python Array - 743 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: #105 / 180
  • Number of attempts: 3
Reformat symbols in list - 1633 entries

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

  • Best score: 24
  • Best player score: 27
  • Position: #166 / 351
  • Number of attempts: 6
Fizzbuzz - 586 entries

type the first 100 lines of the fizzbuzz problem

  • Best score: 44
  • Best player score: 76
  • Position: #84 / 169
  • Number of attempts: 1
Changing around text with citations - 340 entries

Based off of something I saw on reddit

  • Best score: 28
  • Best player score: 43
  • Position: #68 / 94
  • Number of attempts: 2
Many duplicates - 1459 entries

Quick and easy

  • Best score: 7
  • Best player score: 8
  • Position: #262 / 476
  • Number of attempts: 4
delete swap - 1801 entries

delete all swap

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

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

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

Simple number generation

  • Best score: 10
  • Best player score: 15
  • Position: #568 / 712
  • Number of attempts: 3
Contribute to keyboard mashing - 898 entries

Speak in tongues

  • Best score: 17
  • Best player score: 17
  • Position: #50 / 272
  • 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 - 1814 entries

The goal is to see the replacement commands in action.

  • Best score: 19
  • Best player score: 28
  • Position: #335 / 392
  • Number of attempts: 1
Inverting Lines - 1923 entries

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

  • Best score: 10
  • Best player score: 11
  • Position: #265 / 516
  • Number of attempts: 5
Python dataclasses - 1214 entries

Simple challenge to extract fields from a Python class

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

Simple challenge for frequent action while programming.

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

Put a cross in the square

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

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

  • Best score: 16
  • Best player score: 30
  • Position: #246 / 386
  • Number of attempts: 1
HS Final exam vimgolf - 906 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: #121 / 239
  • Number of attempts: 7
Simple, Practical, and Common - 33746 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: #4543 / 7449
  • Number of attempts: 3
Just the middle - 11497 entries

Delete the instructions at the top and bottom.

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

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

  • Best score: 24
  • Best player score: 39
  • Position: #438 / 508
  • Number of attempts: 1
I forgot quotes - 16051 entries

Oops.

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

entered into 32 challenges

contributed 0 challenges